我是靠谱客的博主 踏实方盒,最近开发中收集的这篇文章主要介绍nginx配置server_name后不生效项目场景:问题描述:原因分析:解决方案:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


项目场景:

公司机房搬迁,新环境和外界隔离,系统需要重新搭建,涉及到的服务器资源不足,考虑到国外用户暂时相对教少,一台服务器部署两个项目具有可行性。公司办公网默认解析8080端口,所以nginx需要配置不同server_name,相同端口。


问题描述:

nginx配置中配置了

http{

xxx

server{

xxx;

port 8080;

server_name www.name1.com;

}

server{

xxx;

port 8080;

server_name www.name2.com;

}

}

访问  www.name1.com 或  www.name2.com最终都跳转到了 www.name1.com的前端资源

@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget(); } 

原因分析:

基于nginx对server_name的检测规则,当请求来自 www.name1.com时确实可以被正确解析到第一个server,来自www.name2.com也可以被正确解析到第二个server。但是除此之外的其他请求如果同时不匹配这两者,也会默认访问到配置的第一个server,所以就出现了我出现的问题。


解决方案:

已经定位到了问题出现在非法HOST,基于ngin默认匹配第一个的规则,可以在nginx中第一个配置一个专门针对非法host的server配置。

http{

xxx

server {
   listen 80;
   server_name _;
   
   return 404;
}

server{

xxx;

port 8080;

server_name www.name1.com;

}

server{

xxx;

port 8080;

server_name www.name2.com;

}

}

完美解决

最后

以上就是踏实方盒为你收集整理的nginx配置server_name后不生效项目场景:问题描述:原因分析:解决方案:的全部内容,希望文章能够帮你解决nginx配置server_name后不生效项目场景:问题描述:原因分析:解决方案:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部