【踩坑日记】nginx server_name配置多域名的坑

各位技术大佬,大家好,我是练习时长两年半的代码练习生,Max,喜欢技术,后端和架构。

问题介绍

项目配置了多个域名,如下,php 代码中有获取 $_SERVER['SERVER_NAME'] 的值。

server {
	server_name a.demo.com b.demo.com;
    ...
}

当访问 a.demo.com 时,其获取的值是符合预期的。但是当访问 b.demo.com 时,其获取的值还是 a.demo.com,导致代码中的判断出现错误。

问题分析

当 nginx 的一个 server 节点下,server_name 配置多个域名时,$server_name 变量的值是配置的第一个域名。结合上面我们的配置,此时我们的 $server_name 值为 a.demo.com

解决方案

  • 方案 1,将多个域名配置在不同的 server 段下(推荐)。

例如上面的配置,可以改成如下:

server {
	server_name a.demo.com;
    ...
}
server {
	server_name b.demo.com;
    ...
}
  • 方案 2,修改 nginx 的 SERVER_NAME 值,使用 $host 变量。
# 默认
fastcgi_param SERVER_NAME $server_name;
# 修改为
fastcgi_param SERVER_NAME $host;

今天的坑就踩到这,改天我们接着踩。

更多技术文章,请关注我的个人博客 www.immaxfang.com 和小公众号 Max的技术札记

原文链接:https://www.cnblogs.com/immaxfang/p/17111354.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【踩坑日记】nginx server_name配置多域名的坑 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 教你如何在CI框架中使用 .htaccess 隐藏url中index.php

    以下是教如何在CI框架中使用 .htaccess 隐藏url中index.php 的完整攻略: 1. 准备工作 在开始使用 .htaccess 文件隐藏 url 中 index.php 前,需要确保以下两个条件已经满足: Apache web 服务器已经安装在你的电脑上。 mod_rewrite 模块已经启用。 如果你的环境中不符合上述条件,请先通过搜索引擎…

    PHP 2023年5月26日
    00
  • 学习php设计模式 php实现策略模式(strategy)

    学习PHP设计模式之策略模式(strategy): 什么是策略模式? 策略模式是一种行为模式,它能让你定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。举个例子,我们需要根据不同的用户类型(比如,普通用户、高级用户和VIP用户)来计算每种用户的优惠价格。如果不使用策略模式,我们便需要用if…else if语句来判断用户类型,同时包含每个分类…

    PHP 2023年5月27日
    00
  • php 结果集的分页实现代码

    当我们需要从数据库中查询大量的数据时,我们通常需要将其进行分页处理。在PHP中,可以通过使用MySQL来实现PHP结果集的分页实现。 分页实现代码步骤 以下是实现PHP结果集的分页的步骤: 查询总记录数:通过查询数据库,并统计查询结果的记录总数。 计算总页数:使用总记录数除以每页显示的记录数,向上取整得到总页数。 记录当前页码:使用$_GET获取当前页码,并…

    PHP 2023年5月26日
    00
  • 基于PHP中自带的字符串操作函数合集

    基于PHP中自带的字符串操作函数合集,可以实现对字符串的各种处理和操作,包括字符串的分割、替换、删除、大小写转换等。以下是对基于PHP中自带的字符串操作函数合集的详细讲解: 1. 字符串的分割 使用字符串分割函数explode(),可以将一个字符串按照指定的分隔符进行分割,并返回分割后的数组。示例如下: $str = "apple,banana,o…

    PHP 2023年5月26日
    00
  • php生成txt文件实例代码介绍

    下面是“php生成txt文件实例代码介绍”的完整攻略: 介绍 在Web开发过程中,经常需要对用户的操作进行记录或者生成一些配置文件等。而PHP语言提供了很方便的方式,可以通过PHP生成txt文件。下面我们就来介绍如何通过PHP代码来生成txt文件。 实现步骤 步骤1:创建文件 首先,我们要创建一个txt文件,在PHP中使用 fopen() 函数来创建文件,代…

    PHP 2023年5月30日
    00
  • PHP执行外部命令的函数:exec(), system(), passthru(), shell_exec()

    当编写 PHP 程序时,您有时可能需要执行系统级别的操作,例如执行外部命令。PHP 提供了多种执行外部命令的函数,包括 exec()、system()、passthru() 和 shell_exec()。以下是对这四种函数的详细解释和使用示例。 exec() 函数原型: string exec ( string $command [, array &…

    PHP 2023年5月26日
    00
  • PHP中绘制图像的一些函数总结

    PHP中绘制图像的一些函数总结 简介 PHP是一种广泛使用的服务器端编程语言,在Web开发中具有重要的地位。PHP提供了丰富的图像处理函数,它们可以用来创建、修改、处理图像,同时还能够把图像输出到浏览器或保存到文件中。 本篇文章将总结一些在PHP中常用的绘制图像的函数,包括画线、画矩形、画圆、画多边形、画弧等等。 我们将使用PHP GD库来实现这些功能。GD…

    PHP 2023年5月25日
    00
  • PHP实现简单实用的分页类代码

    这里是实现PHP分页类的攻略。 第一步:创建类文件 首先,我们需要拥有一个类文件,定义一个Pagination类。该类具有以下属性: $pageNums:总页数 $pageSize:每页显示数据的数量 $currentPage:当前页面 $totalNums:总记录数 除此之外,类中还需要包含公共方法用于获取总页数、总记录数及当前页数据。 class Pag…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部