Nginx代理上网
写在前面
反向代理的工具很多,squid也可以做到,这里介绍的是Nginx代理上网。
Nginx具体配置
server{
resolver 114.114.114.114;
listen 8002;
location / {
proxy_pass http://$host$request_uri;
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;
allow 10.10.0.0/16;
deny all;
}
}
注意项:
- 不能有hostname
- 必须有resolver, 即dns,即上面的x.x.x.x,换成你们的DNS服务器ip即可
- 3 . $http_host和$request_uri是nginx系统变量,不要想着替换他们,保持原样就OK。
查看dns方法
cat /etc/resolv.conf
测试
在需要访问外网的机器上执行以下操作之一即可:
#临时生效,命令行执行后即可
export http_proxy=http://yourproxyaddress:proxyport
#永久生效,在文件/etc/.bashrc下追加如下内容:
export http_proxy=http://yourproxyaddress:proxyport
yourproxyaddress也就是你的Nginx服务器的ip了,proxyport就是上面配置中的8002,可以根据自己的需要修改。
填坑
问题
Nginx不读取本地hosts文件了,所有请求Nginx的域名都不走本地hosts而是走dns解析。坑啊!!!这里是Nginx服务器。
解决
这台服务器使用了代理上网,也就是配置了环境变量:export http_proxy=http://proxy_server:8085
导致所有的请求都走了代理服务器,所有域名也走了代理服务器指定的DNS。 删除即可,解决
您还感兴趣的文章
- Vue / React 刷新404 Nginx配置
- nginx在线配置工具
- 如何在FreeBSD 12.0上安装Nginx,MySQL和PHP(FEMP)堆栈
- nginx for Windows v1.11.0 开发版
- nginx for Windows v1.10.0 稳定版
- Centos 7开启网卡打开DHCP自动获取IP
- 在Ubuntu 18.04上配置Ubuntu防火墙(UFW)
- linux下svn常用指令[最新]
- 在Ubuntu 16.04 LTS上设置Express.js Web服务器
- 如何生成SSH密钥?
- linux下如何解压和压缩文件[教程]
- 在CentOS 6上使用WonderShaper限制流量