欢迎使用 Nginx!而不是网站

欢迎使用 Nginx!而不是网站

我希望这是发布此文的正确地方。

我有一个 CentOS 6 VPS,上面托管着多个网站。目前有三个网站运行良好,但现在我正尝试添加第四个网站,当我访问 URL(我们将其称为 nginxFail.com)时,总是会出现“欢迎使用 Fedora 上的 nginx!”欢迎页面。

我将 test.txt 文件放在 /home/nginxFail/www 中,并尝试访问 nginxFail.com/test.txt。它抛出了 403。nginxFail.com/nosuchfile.txt 和 nginxFail.com/nosuchdir 也抛出了 403。

我已经尝试过的:

-验证域名信息:新域名和其他三个域名上的域名信息完全相同,包括 SPF 信息。新域名已经进行了大约 5 天的传播。

-验证 httpd.conf:这是我所得到的:

<VirtualHost *:80>
    DocumentRoot /home/**nginxFail**/www
    ServerName **nginxFail.com**
    ServerName **<my server IP>**
    ErrorLog /var/log/httpd/**<errorLog>**
    CustomLog /var/log/httpd/access_log combined
<Directory "/home/**nginxFail**/www">
Options +Indexes FollowSymLinks +ExecCGI
Order allow,deny
allow from all
</Directory>
</VirtualHost>

当然,粗体条目设置为我的实际信息。这与此文件中使其他三个站点正常运行的其他条目完全相同。

以下是精简的 /etc/nginx/nginx/conf:

user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    # Load config files from the /etc/nginx/conf.d directory
    include /etc/nginx/conf.d/*.conf;

    #
    # The default server
    #
    server {
        listen       80;
        server_name  _;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page  404              /404.html;
        location = /404.html {
            root   /usr/share/nginx/html;
        }

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

-重新启动服务器(和 /etc/init.d/httpd)。没有成功。

-尝试另一台机器:我读到过,nginx 问题可能是病毒或主机文件导致的。我的机器总是干净的(不断进行病毒扫描,不信任浏览器运行的错误扫描,哈哈),我的主机文件似乎也很干净。只是为了好玩,我尝试在另一台电脑上甚至在手机上访问该网站,结果得到了相同的 nginx 页面。

-Google:它让我失望了!:o,这就是我了解浏览器清理事情的方式。

-验证权限:在我的服务器上,所有站点都列在 /home/ 目录中的各自文件夹中。这也是我将新站点条目放入的位置。如前所述,其他三个站点运行正常,因此这不是 /home/ 的权限问题,并且我已确保 home/nginxFail/www 的权限为 755(与其他正常运行的站点一样)。

-查看 /etc/nginx/ 目录:我注意到没有 sites-enabled 目录。我在另一个问题中看到这可能是原因,但如果是这样的话,为什么其他 3 个网站可以正常工作?

-查看日志:除了确认 Web 服务器正在获取 HTTP 请求并抛出 403 错误之外,我实际上没有在 var/log 中找到任何内容。访问上面提到的 test.txt 文件后,我查看了日志目录中的 mod 日期变化,以查看要查看哪些文件。

- 口头告诉网站停止显示 nginx 并显示我的网站:没有运气。

- 在 /etc/nginx 中四处查看:我读到过那里有一个 sites-available 目录,它应该对我有帮助,但是当我以 root 身份登录时我看不到它。

我有点不知所措。

编辑:我对这个问题做了更多的研究,看起来似乎是 Apache 和 nginx 之间的奇怪冲突导致了这一问题。

该网站运行的是 Apache 2.2.23,似乎还安装了 nginx,这可能是错误安装的。我收到的 403 页面表明 Apache 已启动,但由于某种原因,访问域名本身会将我转到 nginx。我自然而然地想到用 停止 nginx /etc/init.d/nginx -s stop。当我这样做并返回 nginxfail.com 时,仍然会显示 nginx 页面。当我这样做时,ps -ef | grep nginx我可以看到 nginx 进程在停止后仍在运行,据我所知,服务器上不应该有任何自动重新启动它的脚本。

有趣的是,当我这样做时/etc/init.d/httpd stop,所有 4 个网站都死机了,包括 nginxfail.com 和其他 3 个正常工作的网站,而当我重新打开 httpd 时,又会出现我的第一篇帖子中提到的相同情况。

我查看了 /etc/httpd/error_log,并收到错误“客户端被服务器配置拒绝:/home/nginxfolder/www/”,并且我验证了权限,因此 Web 服务器(在本例中我很确定是 Apache)似乎正在查找正确的位置。

抱歉,如果这不太清楚,无法很好地说明我的设置。还有其他具体信息可以提供帮助吗?

相关内容