nginx的反向代理与正向代理实例

Nginx在不加载第三方模块的情况下具备的功能:正向代理、反向代理、负载均衡、HTTP服务器

反向代理
反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端。简单来说就是真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被外部网络访问的同时又跟真实服务器在同一个网络环境,当然也可能是同一台服务器,端口不同而已。
代码如下:

server {
 listen 80; 
 server_name localhost; 
 client_max_body_size 512M;

location / {
 proxy_pass http://localhost:8080;
 proxy_set_header Host $host:$server_port;
 }
 }

保存配置文件后启动Nginx,这样当我们访问localhost的时候,就相当于访问localhost:8080。
正向代理

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率
但是目前Nginx有一个问题,那么就是不支持HTTP。

resolver 114.114.114.114 8.8.8.8;
 server {

resolver_timeout 5s;
 listen 81;
 access_log /var/www/root/proxy.access.log;
 error_log /var/www/root/proxy.error.log;

location / {
 proxy_pass http://$host$request_uri;
 }
 }

resolver是配置正向代理的DNS服务器,listen 是正向代理的端口,配置好了就可以在ie上面或者其他代理插件上面使用服务器ip+端口号进行代理了。

正向代理与反向代理的区别:
正向代理需要你主动设置代理服务器ip或者域名进行访问,由设置的服务器ip或者域名去获取访问内容并返回;而反向代理不需要你做任何设置,直接访问服务器真实ip或者域名,但是服务器内部会自动根据访问内容进行跳转及内容返回,你不知道它最终访问的是哪些机器。
正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。

推荐:使用nginx做负载均衡与HTTP服务器

nginx 安装参考:https://codeday.me/collect/20170831/65586.html

 

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:nginx的反向代理与正向代理实例