nginx为例子来搭建正向代理服务器和反向代理服务器

[nginx] 2024-04-26 圈点332

摘要:nginx为例子来搭建正向代理服务器和反向代理服务器的示例,以及注意点。

一.nginx正向代理配置

server{

        resolver 8.8.8.8;

        resolver_timeout 30s; 

        listen 82;

        location / {

                proxy_pass http://$http_host$request_uri;

                proxy_set_header Host $http_host;

                proxy_buffers 256 4k;

                proxy_max_temp_file_size 0;

                proxy_connect_timeout 30;

                proxy_cache_valid 200 302 10m;

                proxy_cache_valid 301 1h;

                proxy_cache_valid any 1m;

        }

}


注意:

1、不能有hostname。 

2、必须有resolver, 即dns,即上面的8.8.8.8,超时时间(30秒)可选。 

3、配置正向代理参数,均是由 Nginx 变量组成。 

proxy_pass $scheme://$host$request_uri;  

proxy_set_header Host $http_host;  

4、配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。  

proxy_buffers 256 4k;  

proxy_max_temp_file_size 0;  

proxy_connect_timeout 30;  

5、配置代理服务器 Http 状态缓存时间。  

proxy_cache_valid 200 302 10m;  

proxy_cache_valid 301 1h;  

proxy_cache_valid any 1m; 

配置好后,重启nginx,以浏览器为例,要使用这个代理服务器,则只需将浏览器代理设置为http://+服务器ip地址+:+82(82是刚刚设置的端口号)即可使用了。


二.nginx反向代理服务器的配置

反向代理参考地址:

http://liuyu.blog.51cto.com/183345/166381/

http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html (更加清晰点)

http://blog.csdn.net/chanya/article/details/7745459

这里我更加简洁的小结下,需要看完整版的,建议点击上面的链接。

下面是以负载均衡为例子的反向代理。

http {

# 省略了前面一般的配置,直接从负载均衡这里开始

# 设置地址池,后端3台服务器

upstream http_server_pool {

        server 192.168.1.2:8080 weight=2 max_fails=2 fail_timeout=30s;

        server 192.168.1.3:8080 weight=3 max_fails=2 fail_timeout=30s;

        server 192.168.1.4:8080 weight=4 max_fails=2 fail_timeout=30s;

    }

# 一个虚拟主机,用来反向代理http_server_pool这组服务器

server {

        listen       80;

# 外网访问的域名        

        server_name  www.test.com; 

        location / {

#           后端服务器返回500 503 404错误,自动请求转发到upstream池中另一台服务器

            proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;

            proxy_pass http://http_server_pool;

            proxy_set_header Host www.test.com;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

        }

        access_log  logs/www.test.com.access.log  combined;

    }

}


最简单的反向代理演示(在一台服务器上做代理服务器,将http请求转发到另一台IIS服务器上,通过二级域名形式访问。)编辑vim nginx.conf

server {

listen    80;

server_name test.zhoumengkang.com;

location / {

   proxy_pass http://121.199.**.*:80;

}

}

nginx  正向代理  反向代理  

感谢反馈,已提交成功,审核后即会显示

上一篇[nginx]

下一篇[nginx]Nginx的基本情况