nginx做代理上网
nginx不仅可以来做反向代理,也可以用来做正向代理(透明代理,代理上网),nginx反向代理看这里
反向代理,外部机器通过网关访问网关后面服务器上的内容,网关起到了反向代理的功能,我们平时通过浏览器访问远程的web服务器大都是这样实现的。
正向代理,就是上面的过程反过来,我们平时说的代理上网,局域网中的用户通过网关做代理访问外部的网络。
nginx同样可以实现代理上网的功能,配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
user www; worker_processes 1; error_log /var/log/nginx/error.log debug; events { use epoll; worker_connections 1024; } http { resolver 8.8.8.8; server { listen 8088; location / { proxy_pass http://$http_host$request_uri; } } } |
nginx实现代理上网,有三个关键点必须注意,其余的配置跟普通的nginx一样
1.增加dns解析resolver
2.增加无server_name名的server
3.proxy_pass指令
具体实现步骤:
1.把如下配置填到你的配置文件http作用域,
1 2 3 4 5 6 7 |
resolver 8.8.8.8; server { listen 8088; location / { proxy_pass http://$http_host$request_uri; } } |
2.重启nginx使配置文件生效
3.设置ie代理
4.可以使用代理上网了。
可以访问http://ip.quancha.cn检测代理是否生效
使用nginx代理上网后
@houya
简单 搞个域名,然后解析de时候 多添加几条解析记录,但是前面的二级域名前缀不要变 就可以了 一个二级域名解析多个ip,访问的时候直接用域名
学了点新东西
就是不支持https拉~
有这样一个应用场景:
为了防止同一个IP请求网站次数过多,导致Ip被封,我在多个机器上部署了代理软件,这些机器都有独立的外网IP,现在想部署一个中心的代理管理服务,来管理这些机器,实现代理的负载均衡。所有客户端都请求中心服务器,然后由中心服务器选择代理服务来访问目标网站。
初步是想在中心服务器上部署一个nginx ,来实现请求的转发,请问各位大侠这个nginx该如何配置,实现二级正向代理呢
你这个配置不支持非80端口!
要怎样才能支持非80端口的?
?