Nginx虚拟主机多server_name的顺序问题

 更新时间:2008年12月06日 21:15:03   作者:  
今天在配置Nginx + PHP + MediaWiki中,发现一个问题:MediaWiki所在的Nginx虚拟主机绑定了多个域名,但是不管通过什么域名访问MediaWiki首页,都会被跳转到其中的一个域名上。

Nginx配置文件中没有相关的rewrite跳转规则,那么就应该是MediaWiki的PHP程序做的跳转,但是,遍历了MediaWiki目录下的所有文件以及查询了MySQL数据库中的每个表,都没有发现记录有这个域名。后来,通过查看源代码发现MediaWiki是根据$_SERVER['SERVER_NAME']做的跳转,顺藤摸瓜,发现了下列问题:

  在一个Nginx虚拟主机中,可以绑定多个server_name,例如:
  

  而server_name的先后顺序的不同,对PHP程序中使用$_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')获取服务器域名是有影响的:
  

  

  $_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')获取的始终将是Nginx server_name配置中的第一个域名,这一点在程序开发中需要注意。这第一个域名就相当于Apache虚拟主机配置中的ServerName,后面的域名就相当于Apache的ServerAlias。

相关文章

  • centos配置mutt和msmtp实现邮件发送

    centos配置mutt和msmtp实现邮件发送

    这篇文章主要为大家详细介绍了centos配置mutt和msmtp实现邮件发送,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 详细部署阿里云服务器全过程(图文教程)

    详细部署阿里云服务器全过程(图文教程)

    这篇文章主要介绍了详细部署阿里云服务器全过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Linux中验证tar包在传输后的完整性的过程详解

    Linux中验证tar包在传输后的完整性的过程详解

    在日常的系统管理或软件部署过程中,文件传输是一项常规操作,特别是当处理大型文件(如tar包)时,验证文件的完整性变得尤为重要,本文将介绍如何使用校验和来验证tar包在从一台机器传输到另一台机器后的完整性,需要的朋友可以参考下
    2023-12-12
  • linux编辑文件保存退出的实操讲解

    linux编辑文件保存退出的实操讲解

    在本篇文章里小编给大家整理的是一篇关于linux编辑文件保存退出的实操讲解内容,需要的朋友们参考下。
    2020-02-02
  • 详解Linux添加/删除用户和用户组

    详解Linux添加/删除用户和用户组

    本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数。具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • Vim编辑器常用的命令总结

    Vim编辑器常用的命令总结

    使用 Vim 的时间不长,但如今已经离不开熟悉的 Vim 编辑模式了。 Vim 的学习曲线是非常陡的,一开始学习的时候,面对很多的操作命令要去记住,常常望而却步。其实,只要记住一些常用的命令,加之在工作中坚持使用 Vim 进行编辑,很快就能得心应手了。下面来一起看看吧。
    2017-04-04
  • Linux 3.X/4.x/5.x 忘记宝塔面板密码的解决方法

    Linux 3.X/4.x/5.x 忘记宝塔面板密码的解决方法

    在本篇文章里我们给大家整理的是关于忘记Linux 3.X/4.x/5.x 宝塔面板密码的解决方案,有需要的朋友们可以学习下。
    2019-10-10
  • linux云主机安装pdo详细教程

    linux云主机安装pdo详细教程

    这篇文章主要介绍了linux云主机安装pdo详细教程,网上搜到一个几个还算清晰的教程,但是没加说明,很多站长按照做了,中途出现错误,便不知如何解决了,这里特整理一下方便需要的朋友
    2017-08-08
  • Linux中关于inode的知识总结

    Linux中关于inode的知识总结

    这篇文章主要给大家介绍了在Linux中关于inode的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • 解决安装zabbix之后登陆报错:zabbix Details Cannot connect to the database. No such file or directory

    解决安装zabbix之后登陆报错:zabbix Details Cannot connec

    检查PHP配置文件(php.ini)中mysql.default_socket路径是否与MySQL实际socket文件位置一致,确认MySQL服务已启动且权限正确,必要时手动指定socket路径或重启服务
    2025-07-07

最新评论