Tom*_*mas 2 linux ubuntu nginx web-server
我的服务器上有多个域运行 nginx 设置,如下所示:
server {
listen 80;
server_name domain1.com www.domain1.com;
root /var/www/domain1/public_html;
index index.php index.html index.html;
}
server {
listen 80;
server_name domain2.com www.domain2.com;
return 301 https://plusgoogle.com/+somepage;
}
server {
listen 80;
root /var/www/other_domains/public_html;
index index.php index.html index.html;
}
Run Code Online (Sandbox Code Playgroud)
每个服务器块都在其单独的文件中(domain1.conf、domain2.conf 等)
现在问题来了:
我有点困惑,我可以理解 domain2 是否会加载其他域的根目录,但是当我在配置中将 server_name 与 301 一起指定时,其他域怎么会重定向到 301?
感谢帮助
更新
你确定你的浏览器没有缓存- 我试图在不同的设备上打开网站,我认为 corevs
这些域在现实中是否与上面示例中的域一样不同- 是的,实际上我不明白为什么我不提供域名:域 1 = tomasdostal.com、域 2=autodopravadostal.cz、其他域 = casull。 info、forgotmap.com 等
第二个服务器块配置是存在于其他任何地方还是仅存在于该配置文件中- 我正在设置 100% 新的 aws 实例,所以我很确定它只存在于那里。
您应该阅读 nginx 如何处理请求。
在您的情况下,具有未知域的请求属于默认服务器。通常是第一个,但也可以是任何一个。要明确定义默认服务器,您应该default_server在listen指令中使用标志。因此,在您应该捕获所有其他域的服务器块中,您应该编写:
listen 80 default_server;
Run Code Online (Sandbox Code Playgroud)