Nyx*_*nyx 1 linux ubuntu debian nginx php-fpm
我有 2 sites-enabled
,server_name
如下:
server_name www.mysite.com mysite.com
Run Code Online (Sandbox Code Playgroud)
和
server_name dev.mysite.com
Run Code Online (Sandbox Code Playgroud)
问题:当我通过其 IP 地址访问该网站时,通过查看访问/错误日志,似乎 nginx 正在root
使用dev.mysite.com
.
nginx 如何决定服务哪个?我们可以迫使它服务过root
的www.mysite.com
时,该网站正在使用的IP地址访问?
配置文件
server {
listen 80;
server_name www.mysite.com mysite.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
root /var/www/mysite/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args ;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_read_timeout 300;
}
}
Run Code Online (Sandbox Code Playgroud)
简而言之:您还没有告诉 Nginxserver {...}
选择哪个- 所以它选择了第一个。
Nginx 将请求传递到默认服务器。为此,它将Host
标头与server_name
. 如果使用 IP 地址,则Host
标头将包含 IP 地址(这意味着它可用于匹配server_name
)。
在没有server_name
匹配到 Host 头的情况下,nginx 将通过以下方式选择服务器:
listen 80 default_server
如果指令具有
default_server
参数,则封闭server {...}
块将是该对的默认服务器address:port
。这对于基于名称的虚拟主机很有用,您希望为与任何 server_name 指令不匹配的主机名指定默认服务器块。如果没有带有 default_server 参数的指令,则默认服务器将是该address:port
对出现的第一个服务器块。该default_server
参数出现在 0.8.21 版本中,因此弃用了参数默认值。
推荐阅读:
归档时间: |
|
查看次数: |
2141 次 |
最近记录: |