Nginx正向代理
- Nginx正向代理80端口
- Nginx代理服务器端配置:
- 客户端配置:
- Nginx正向代理非80端口
- Nginx代理服务器端配置
- 客户端配置:
正向代理需求环境:
局域网无法访问互联网,但是内网中有一个服务器能上互联网,即可配置正向代理,使客户端能通过代理服务器访问互联网中的网站。
正向代理原理图:
PC——nginx服务器——互联网——互联网中网站
Nginx正向代理80端口
本文正向代理的是80端口,所以客户端PC智能访问互联网中80端口http开头的网站。
代理端口可改变,同理客户端PC智能访问互联网中对应端口的网站。
Nginx代理服务器端配置:
nginx服务器能上互联网。
本例中nginx服务器网卡配置:
ip地址:192.168.3.157
子网掩码:255.255.255.0
网关:192.168.3.1
nginx.conf 中配置
resolver 114.114.114.114;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://$http_host$request_uri;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
}
此配置,仅支持客户端访问代理80端口的网站,如下图:
客户端配置:
客户端不能上互联网,但能连接nginx代理服务器,即可ping通nginx服务器。
客户端网卡配置:
ip地址:192.168.3.178
子网掩码:255.255.255.0
网关:192.168.3.157
配置浏览器代理设置:
Iinternet选项——连接——局域网设置:
配置nginx代理服务器的IP地址
客户端上:在浏览器输入 对应的http网站(80端口)
注: 无法访问https网站。
Nginx正向代理非80端口
由于nginx要代理非80端口,需由80端口进行转换,所以需要在代理80端口正确的基础上,新增需要正向代理的非80端口。
本文以8000端口为例,无法上网的客户端访问互联网中8000端口的网站。
Nginx代理服务器端配置
resolver 114.114.114.114;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://$http_host$request_uri;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 8000;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://$http_host:8000/$request_uri;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
在正向80端口的基础上,新增一个server类,注意的是下图中标注的8000端口。
如果是访问互联网中其他端口网站,将8000改成其他的端口即可。
客户端配置:
配置浏览器代理设置:
Iinternet选项——连接——局域网设置:
配置nginx代理服务器的IP地址和端口,非80端口的代理设置端口仍然配置为80(因需80端口进行转发)
在浏览器中访问80端口的网站和非80端口的网站仍然成功。测试结果如下: