Nginx多层代理配置方法
时间:2019-03-31
本文章向大家介绍Nginx多层代理配置方法,主要包括Nginx多层代理配置方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
此篇只说nginx的多级代理配置,不扯其他的.
需求:hba.changyoufun.com-121.201.125.239(gd1)--hk1--co(alphaclash.ggdev.co) 广东代理--->香港--->加拿大
由于idc机房在加拿大,所以经常会配些nginx多级反向代理到国内.(不做代理client就得翻墙,或者说是丢包很严重.)
下面的Nginx配置我只写80的,443的忽略,简化nginx的配置,参数也不一一列举不然太多了.
gd1的反向代理配置:(就是一个反向代理)
cat hba.changyoufun.com.conf server{ listen 121.201.125.239:80; server_name hba.changyoufun.com; access_log /data/weblogs/hba.changyoufun.com.access.log main; index index.html index.php index.htm; location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; proxy_read_timeout 600; proxy_connect_timeout 600; proxy_pass http://hba80; } } Upstream配置(代理的是hk1的内网ip): upstream hba80 { server 10.105.3.222:80; } upstream hba443 { server 10.105.3.222:443; }
hk1的反向代理配置:(也是一个nginx反向代理)
cat hba.changyoufun.com.conf server{ listen 10.105.3.222:80; server_name hba.changyoufun.com; access_log /data/weblogs/hba.changyoufun.com.access.log main; index index.html index.php index.htm; location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; proxy_read_timeout 600; proxy_connect_timeout 600; proxy_pass http://hba80; } }
Upstream配置(代理的是alphaclash.ggdev.co域名的ip地址):
upstream hba80 { server 216.66.17.34:80; } upstream hba443 { server 216.66.17.34:443; }
co机房原先已经存在alphaclash.ggdev.co域名的配置,只需要copy一份alphaclash.ggdev.co的nginx配置,将域名替换为hba.changyoufun.com即可.
co的两份nginx配置:
nginx和php的web版:
cat hba.changyoufun.com.conf server{ listen 216.66.17.34:80; server_name hba.changyoufun.com ; access_log /data/weblogs/hba.changyoufun.com.access.log main; index index.html index.php index.htm; root /product/clash/alpha/web/htdocs; location ~ ^/.*(do|php)$ { fastcgi_pass php_proxy; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; include /etc/nginx/fastcgi_params; } }
cat alphaclash.ggdev.co.conf server{ listen 216.66.17.34:80; server_name alphaclash.ggdev.co; access_log /data/weblogs/alphaclash.ggdev.co.access.log main; index index.html index.php index.htm; root /product/clash/alpha/web/htdocs; location ~ ^/.*(do|php)$ { fastcgi_pass php_proxy; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; include /etc/nginx/fastcgi_params; } }
注释:其实nginx的代理很简单,很多时候是没想明白,既然代理alphaclash.ggdev.co,前面两级代理配置了这个域名不就ok了?仔细想发现nginx代理根据ip:端口找域名,然后在location匹配到的location段再找upstream段,再根据upstream段的ip+port找下级域名,最后发现最后一级没有相匹配的域名就报404了,所以最后一层也要配上相匹配的域名配置.
总结
以上所述是小编给大家介绍的Nginx多层代理配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- 简化Swagger使用的自制Starter:spring-boot-starter-swagger,欢迎使用和吐槽
- demo3同通讯录展示的方式分组排序
- Android手势研究(textview及listview对比验证)
- demo2动态加载显示商品详情页
- demo1 动态显示view或弹框 动态隐藏view或弹框
- ios 继承UITableViewController,更改tableview样式
- demo1 动态显示view或弹框 动态隐藏view或弹框
- 从零开始的Spring Security Oauth2(一)
- 细说Android事件传递
- swift基础_ set get方法 理解
- 高仿今日头条(2)
- ios tableview 上加 textfiled
- Spring Cloud实战小贴士:Feign的继承特性(伪RPC模式)
- 仿淘宝购买详情页购买缩小动画
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法