Nginx多层代理配置方法
此篇只说nginx的多级代理配置,不扯其他的.
需求:hba.changyoufun.com-121.201.125.239(gd1)--hk1--co(alphaclash.ggdev.co) 广东代理--->香港--->加拿大
由于idc机房在加拿大,所以经常会配些nginx多级反向代理到国内.(不做代理client就得翻墙,或者说是丢包很严重.)
下面的Nginx配置我只写80的,443的忽略,简化nginx的配置,参数也不一一列举不然太多了.
gd1的反向代理配置:(就是一个反向代理)
cathba.changyoufun.com.conf
server{
listen121.201.125.239:80;
server_namehba.changyoufun.com;
access_log/data/weblogs/hba.changyoufun.com.access.logmain;
indexindex.htmlindex.phpindex.htm;
location/{
proxy_set_headerX-Forwarded-For$remote_addr;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_headerHost$host;
proxy_redirectoff;
proxy_read_timeout600;
proxy_connect_timeout600;
proxy_passhttp://hba80;
}
}
Upstream配置(代理的是hk1的内网ip):
upstreamhba80{
server10.105.3.222:80;
}
upstreamhba443{
server10.105.3.222:443;
}
hk1的反向代理配置:(也是一个nginx反向代理)
cathba.changyoufun.com.conf
server{
listen10.105.3.222:80;
server_namehba.changyoufun.com;
access_log/data/weblogs/hba.changyoufun.com.access.logmain;
indexindex.htmlindex.phpindex.htm;
location/{
proxy_set_headerX-Forwarded-For$remote_addr;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_headerHost$host;
proxy_redirectoff;
proxy_read_timeout600;
proxy_connect_timeout600;
proxy_passhttp://hba80;
}
}
Upstream配置(代理的是alphaclash.ggdev.co域名的ip地址):
upstreamhba80{
server216.66.17.34:80;
}
upstreamhba443{
server216.66.17.34:443;
}
co机房原先已经存在alphaclash.ggdev.co域名的配置,只需要copy一份alphaclash.ggdev.co的nginx配置,将域名替换为hba.changyoufun.com即可.
co的两份nginx配置:
nginx和php的web版:
cathba.changyoufun.com.conf
server{
listen216.66.17.34:80;
server_namehba.changyoufun.com;
access_log/data/weblogs/hba.changyoufun.com.access.logmain;
indexindex.htmlindex.phpindex.htm;
root/product/clash/alpha/web/htdocs;
location~^/.*(do|php)${
fastcgi_passphp_proxy;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
fastcgi_paramPATH_INFO$fastcgi_script_name;
include/etc/nginx/fastcgi_params;
}
}
catalphaclash.ggdev.co.conf
server{
listen216.66.17.34:80;
server_namealphaclash.ggdev.co;
access_log/data/weblogs/alphaclash.ggdev.co.access.logmain;
indexindex.htmlindex.phpindex.htm;
root/product/clash/alpha/web/htdocs;
location~^/.*(do|php)${
fastcgi_passphp_proxy;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
fastcgi_paramPATH_INFO$fastcgi_script_name;
include/etc/nginx/fastcgi_params;
}
}
注释:其实nginx的代理很简单,很多时候是没想明白,既然代理alphaclash.ggdev.co,前面两级代理配置了这个域名不就ok了?仔细想发现nginx代理根据ip:端口找域名,然后在location匹配到的location段再找upstream段,再根据upstream段的ip+port找下级域名,最后发现最后一级没有相匹配的域名就报404了,所以最后一层也要配上相匹配的域名配置.
总结
以上所述是小编给大家介绍的Nginx多层代理配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。