nginx域名中转
针对某个域名进行中转:
server {
listen 172.16.10.1:80;
server_name pypi.python.org;
location ~ /simple {
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://pypi.python.org;
}
}
注意如果是前后端域名不一样的话需要处理proxy_redirect
的301跳转之类的显示,否则在跳转时候会跳转到proxy_pass的域名。
另外可以直接代理所有80端口的http流量:
server {
listen 80;
server_name _;
resolver 114.114.114.114;
set $URL $host;
location / {
proxy_pass http://$URL;
}
}
如果是想代理https的站点也不是不可能,只是需要自行处理CA证书导入即可,而且经过https中转的流量对nginx是透明的,也就是有证书的时候做窃听和劫持的情况。