无法更改 nginx 1.2.5 默认网站

无法更改 nginx 1.2.5 默认网站

我刚刚在新服务器上安装了 nginx 版本 1.2.5,发现我无法更改默认网站的默认文件。

在 /etc/nginx/sites-available/default 文件中我有以下几行:

server {
listen 80 default_server;
    server_name myserver;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    root /var/www/default;
error_page 404 /4044.html;
    location / {
        index index.html index.htm;
    }

}

server {
... server2...
}
server {
... server3...
}

不幸的是,当我使用服务器的 IP 地址打开页面时http://ip_address,nginx 显示的不是文件 /var/www/default/index.html,而是默认文件“Welcome to nginx”。如果出现 404 错误,它不会显示文件 /var/www/default/4044.html,而是默认的“未找到”页面。

我尝试更改:将 listen 80 default_server; 更改为 listen 80 default; 并将 server_name myserver; 更改为 server_name servers_ip_address

重新启动了 nginx,但没有成功。检查了 error.log 文件,但没有错误。我在另外 2 台服务器上安装了 nginx,但 nginx 版本较旧。没有出现过这样的问题。

有什么想法吗?如果我无法更改它,是否有人知道默认页面位于何处,以便我可以编辑它们?谢谢。

答案1

由于某种原因,新的 Nginx 配置文件不包含文件 /etc/nginx/sites-available/default。这是我的问题。

答案2

这是老问题了,但是如果你不知道答案的话可以看看配置更改未反映在 nginx wiki 上。

尝试清除浏览器缓存,看看更改是否反映出来。我一清除浏览器缓存,“欢迎使用 Nginx”页面就再也没有加载过。

答案3

根据您的配置,这是正确的行为。然后您加载服务器的 IP 地址,您将始终获得该 IP 地址的第一个虚拟服务器定义,因为 nginx 无法从 HTTP 标头中确定服务器名称。

如果您希望另一个服务器块响应,只需将其移动到该 IP 地址的第一个位置。

默认服务器的 HTML 文件位于 /var/www/default,由“root”指令定义(root /var/www/default;)

拥有 IP 的默认配置实际上非常有用。我使用它来自动从非www.地址重定向到www.somedomain.com如下地址:

server {
listen 192.168.1.1 default;
server_name "_";
root /usr/local/nginx/html/whaever;
if ($host ~* ^[^.]+\.[^.]+$) { rewrite ^(.*)$ http://www.$host$1 permanent; }
}

相关内容