Nginx 服务器默认不适用

Nginx 服务器默认不适用

我在 Debian 服务器上安装了 nginx。我有三台服务器(虚拟主机):

  • 默认(/etc/nginx/sites-enabled/0-default)
  • mydomain.com (/etc/nginx/sites-enabled/1-mydomain)
  • booking.mydomain.com (/etc/nginx/sites-enabled/2-booking)

当我用域名访问服务器时,我得到了正确的网站。但是当我用 IP 地址访问服务器时,返回的是预订网站。

该预订网站在 Symfony 上,以下是 sites-enabled/2-booking 文件的内容:

server {
server_name booking.mydomain.com;
root /var/www/booking/web;

location / {
    # try to serve file directly, fallback to app.php
    try_files $uri /app.php$is_args$args;
    limit_req zone=one burst=20;
}

location ~ ^/(app|app_dev|config)\.php(/|$) {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS off;
}

error_log /var/log/nginx/booking_error.log;
access_log /var/log/nginx/booking_access.log;

}

我希望我的服务器在从其 IP 地址访问时返回 /var/www/index.php 文件,您知道该怎么做吗?

答案1

要明确设置默认服务器,您可以在 中添加default_server指令listen/etc/nginx/sites-enabled/0-default这样该参数就变成。

listen *:80 default_server;

摘录自nginx 如何处理请求

在此配置中,nginx 仅测试请求的标头字段“Host”,以确定应将请求路由到哪个服务器。如果其值与任何服务器名称都不匹配,或者请求根本不包含此标头字段,则 nginx 会将请求路由到此端口的默认服务器。在上述配置中,默认服务器是第一个服务器 — 这是 nginx 的标准默认行为。还可以使用 listen 指令中的 default_server 参数明确设置哪个服务器应为默认服务器

相关内容