Nginx正向代理与反向代理
1.正向代理:
正向代理类似一个跳板机,代理访问外部资源。
典型应用:为在防火墙内的局域网客户端提供访问Internet的途径 如:IE例外设置代理服务器
正向代理配置实例:为不影响默认配置:添加一个虚拟主机:
include vhosts/*.conf;
vi proxy.conf
server{
resolver 8.8.8.8;
resolver_timeout 30s;
listen 8090;
server_name proxy.qinyj.top;
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;
}
}
2.反向代理:
反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。典型用途是将 防火墙后面的服务器提供给Internet用户访问
nginx支持配置反向代理,通过反向代理实现网站的负载均衡。这部分先写一个nginx的配置,后续再深入研究nginx的代理模块和负载均衡模块。
nginx通过proxy_pass 配置代理站点,upstream模块实现http负载均衡。
server {
........
upstream qinyujie { #定义负载均衡站点名称
server 192.168.0.161:80;
server 192.168.0.162:80; #后端真实ip一般指内网
}
location / {
proxy_pass http://qinyujie; #配置代理站点或后端真实ip
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
3.反向代理用做内网域名转发
编辑反向代理服务器配置文件:
vim /usr/local/nginx/conf/reverse-proxy.conf
server
{
listen 80;
server_name xxx123.tk;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.10.38:3000;#在浏览器中输入xxx123.tk的时候访问的内网服务器192.168.10.38的3000端口
}
access_log logs/xxx123.tk_access.log;
}
吾之爱,心之念。
携子手,到白头。