問(wèn)題介紹
項(xiàng)目配置了多個(gè)域名,如下,php 代碼中有獲取 $_SERVER['SERVER_NAME']
的值。
server {
server_name a.demo.com b.demo.com;
...
}
當(dāng)訪問(wèn) a.demo.com
時(shí),其獲取的值是符合預(yù)期的。但是當(dāng)訪問(wèn) b.demo.com
時(shí),其獲取的值還是 a.demo.com
,導(dǎo)致代碼中的判斷出現(xiàn)錯(cuò)誤。
問(wèn)題分析
當(dāng) nginx 的一個(gè) server 節(jié)點(diǎn)下,server_name 配置多個(gè)域名時(shí),$server_name 變量的值是配置的第一個(gè)域名。結(jié)合上面我們的配置,此時(shí)我們的 $server_name 值為 a.demo.com
。
解決方案
- 方案 1,將多個(gè)域名配置在不同的 server 段下(推薦)。
例如上面的配置,可以改成如下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-512225.html
server {
server_name a.demo.com;
...
}
server {
server_name b.demo.com;
...
}
- 方案 2,修改 nginx 的 SERVER_NAME 值,使用 $host 變量。
# 默認(rèn)
fastcgi_param SERVER_NAME $server_name;
# 修改為
fastcgi_param SERVER_NAME $host;
更多技術(shù)文章,請(qǐng)關(guān)注我的個(gè)人博客 www.immaxfang.com 和小公眾號(hào)
Max的技術(shù)札記
。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-512225.html
到了這里,關(guān)于踩坑日記-nginx server_name配置多域名的坑的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!