内网客户机通过代理访问互联网。通常要设置代理服务器地址和端口。
外网用户通过代理访问内网服务器。内网服务器无感知。
nginx模块:ngx_http_proxy_module
代理
Syntax:? ? ? proxy_pass URL;? ? ? ? ? ? ? ? ? ? ?//代理的后端服务器URL
Default:? ? ? —
Context: ?? ?location, if in location, limit_except
缓冲区
Syntax: ? ? proxy_buffering on | off;
Default: ? ?proxy_buffering on;? ? ? ? ? ? ? ? //缓冲开关
Context: ?? ?http, server, location
proxy_buffering开启的情况下,nignx会把后端返回的内容先放到缓冲区当中,然后再返回给客户端
(边收边传,不是全部接收完再传给客户端)。
Syntax: ? ?? ?proxy_buffer_size size;
Default: ?? ?proxy_buffer_size 4k|8k;?? ??? ??? ?缓冲区大小
Context: ?? ?http, server, location
Syntax: ?? ? ? ?proxy_buffers number size;
Default: ?? ?proxy_buffers 8 4k|8k;?? ??? ??? ??? ??? ?缓冲区数量
Context: ?? ?http, server, location
Syntax: ? ??? ?proxy_busy_buffers_size size;
Default: ?? ?proxy_busy_buffers_size 8k|16k;?? ??? ?忙碌的缓冲区大小,控制同时传递给客户端的buffer数量
Context: ?? ?http, server, location
头信息
Syntax: ?? ? ? ?proxy_set_header field value;
Default: ?? ?proxy_set_header Host $proxy_host;?? ??? ??? ??? ?设置真实客户端地址
? ? ? ? ? ? ? ? proxy_set_header Connection close;
Context: ?? ?http, server, location
超时
Syntax: ?? ? ? ?proxy_connect_timeout time;
Default: ?? ?proxy_connect_timeout 60s;?? ??? ??? ??? ??? ?链接超时
Context: ?? ?http, server, location
Syntax: ?? ? ? ?proxy_read_timeout time;
Default: ?? ?proxy_read_timeout 60s;
Context: ?? ?http, server, location
Syntax: ?? ? ? ?proxy_send_timeout time;nginx进程向fastcgi进程发送request的整个过程的超时时间
Default: ?? ?proxy_send_timeout 60s;
Context: ?? ?http, server, location
环境两台nginx真实服务器
一台作为网站内容使用,另一台作为代理服务器
vim /etc/nginx/nginx.conf
? ? location / {
.....
proxy_pass http://192.168.100.10:80;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header ? X-Real-IP $remote_addr;
proxy_set_header ? X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
? ? }
请注意:proxy_pass http:// ?填写客户服务器的地址。
浏览器中输入http:// proxy服务器IP
也可以是proxy服务器的域名
成功访问客户服务器页面即成功
192.168.100.20 代理服务器地址
192.168.100.254 客户机地址。
访问成功。 记录了客户机的IP和代理服务器的IP。