nginx同IP、同端口、不同域名时的转发
在使用nginx时对于upstream的server的测试中发现,nginx默认对其使用的是基于IP的转发,这就意味着对于同IP、同端口、不同域名时无法进行转发。
在官方WIKI:http://wiki.nginx.org/NginxHttpUpstreamModule没有查到相应的解决方案。
在GOOGLE上查到多篇几乎无人问同样的问题,最终发现Timo的这篇文章:nginx单一端口域名转发,也进一步证实了yaosansi的猜测是正确的.
以下引用了Timo的原文中的解决方案:
对于后端是同一端口多域名转发的nginx proxy。在nginx中的默认proxy是只能对后面real server做端口转发的,而不能做域名转发。
这个是因为默认情况下:
proxy_set_header Host $proxy_host;
这样就等于前端输入域名后到nginx这里直接转换成IP进行转发了。
于是我们需要修改proxy_set_header的参数。
proxy_set_header Host $http_host;
下面这个例子中backend1权重为5,其他默认为1,最大失效次数3次,如果30秒内没有响应就认为是失效了。
upstream lb {
server yaosansi.com weight=5;
server www.yaosansi.com max_fails=3 fail_timeout=30s;
server unix:/tmp/test3;
}server {
listen 80;
server_name www.yaosansi.com;
location / {
proxy_store off;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://lb;
}
}
转载于:https://www.cnblogs.com/huangjingzhou/articles/2155895.html
nginx同IP、同端口、不同域名时的转发相关推荐
- Nginx基于IP,端口,域名配置虚拟主机
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实 ...
- 教你如何处理Nginx禁止ip加端口访问的问题
这篇文章主要介绍了Nginx禁止ip加端口访问的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx禁止IP加端口访问 使用iptables 限制 ...
- Debian配置Apache虚拟主机(IP、端口、域名)
apache2有三种方式实现虚拟主机,IP.端口和域名.用户输入不同的IP.端口.域名.访问到的就会是不同的站点. 域名方式: 服务器需要搭建DNS服务,本文省略搭建DNS服务的过程. 在/var/w ...
- mac nginx映射ip和端口_mac 上配置 nginx 端口转发访问 angular 项目
背景 在进行前端的移动端开发时,需要在手机上预览电脑上的项目. 以 angular 为例,默认启动项目后,在开发机(以 Mac 为例)的浏览器地址栏输入 http://localhost:4200 即 ...
- nginx 禁止IP访问服务器和非法域名绑定你的IP
如果你不想别人通过IP访问你的web server或用其它域名绑定你的IP.有什么解决方案呢? 如果你的web server是nginx 请参考下面的虚拟主机配置: server{ listen 80 ...
- nginx限制ip,只允许域名访问
一般需要配置两个server ,listen需要被监听的端口. 第一个如下图,这样,当访问ip的时候就会返回500错误了: 第二个则配置你禁止的ip的域名,如下图 ,这里面配置你的location.u ...
- mac nginx映射ip和端口_步骤四、nginx反向代理
写在前面: 上一步,我们已经部署好了静态网页 但是呢有一个端口号在哪里,看着很不爽,接下来我们就来解决掉这个端口号. 一.增加文件夹 我们之前已经创建过两个文件夹了,大家还记得吗? /home|--- ...
- 正则校验IP及端口和域名和手机号、座机同步校验
正则校验 let value="http://www.baidu.com" let num=fieldsValue.sdtName.split(":")if(n ...
- Nginx配置虚拟主机(基于域名、端口及IP)
文章目录 一.实验环境及工具介绍 二.实验一:基于域名 三.实验二:基于端口 四.实验三:基于IP 一.实验环境及工具介绍 实验环境:VMware Workstation 15.5.Centos7.6 ...
最新文章
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
- 安卓手机可以连接斑马系统吗_斑马郝飞:我们一定能在车载系统上打败安卓
- 注册Github账户过程
- python web框架介绍对比
- 牛津剑桥古怪面试题:美女与经济学
- java语言程序设计第二版课后答案吴倩_java语言程序设计课后答案 郞波 第二版 清华大学出版社...
- mqtt+uniapp 发布/订阅实例
- c语言编程科学计数法,c语言编程 科学计数法
- 深山红叶PE系统工具箱V32
- ASPICE总结2——软件详细设计与软件测试过程
- word流程图怎么使箭头对齐_在Word中画流程图时箭头怎么对齐到框的中间啊?
- 想学一门计算机技术 Java和Python哪个前景好
- Android 自定义锁屏图案 View
- 灵活用工系统开发|劳务派遣有风险吗?
- 个人永久性免费-Excel催化剂功能第34波-提取中国身份证信息、农历日期转换相关功能...
- Codeforces1422 F.Boring Queries(根号分治+线段树+可持久化线段树)
- 免费代理池(proxy_pool)搭建教程
- AGV机器人出圈:助力产线物流自动化
- ghost里html文件怎么打开,Ghost配置5——添加归档页面
- 今日份Ps练习 | 剪纸效果