更改 nginx 中的服务器名称会导致失败

更改 nginx 中的服务器名称会导致失败

我正在运行一个 Web 应用程序的安装,它使用 nginx 实现 HTTPS,并使用 apache 提供内容。

我刚刚在新机器上安装完升级版本,但遇到了一个奇怪的问题。

当我使用 URL newapplication.mydomaincom 时,一切都很好。但是,当我尝试通过将所有内容切换到 application.mydomain.com 来上线时,它不起作用 - 我只得到测试“欢迎使用 nginx!”页面。

我的 application.conf 文件如下,请注意,如果我将“application.mydomain.com”的每个实例更改为“newapplication.mydomain.com”,那么它就可以正常工作 - 我可以在浏览器中输入“newapplication.mydomain.com”并重定向到 HTTPS。但是,当使用“application.mydomain.com”时,它会失败。我可以输入“application.mydomain.com:18804”,这就可以正常工作(根据我的 apache 配置)。

Nginx 配置文件:

    upstream application {

            server 127.0.0.1:18805;

    }


    server {

            listen 18804;

            location / {

                    return 301 https://$host$request_uri;

            }

    }




    server {

            listen 80;

            location / {

                    return 301 https://$host$request_uri;

            }

    }



    server {

            listen 443 ssl;

            server_name application.mydomain.com;

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

            error_log /var/log/nginx/application-errors.log;

            ssl on;

            ssl_certificate_key /etc/ssl/private/my.key;

            ssl_certificate /etc/ssl/certs/my.crt;

            ssl_ciphers RC4:HIGH:!aNULL:!MD5;

            ssl_prefer_server_ciphers on;


            client_max_body_size 0;



            location / {

                    proxy_set_header Host $host;

                    proxy_set_header X-Real-IP $remote_addr;

                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                    proxy_pass http://redmine;

            }

    }

    server {
        listen 18804;
        server_name application.mydomain.com;

        return 301 https://application.mydomain.com$uri;
    }

    server {
        listen 80;
        server_name application.mydomain.com;

        return 301 https://application.mydomain$uri;
}

Apache 配置:

<VirtualHost *:18805>
  DocumentRoot /var/www/html/application/public
  ServerName application.mydomain.com
  ServerAlias 127.0.0.1
  ErrorDocument 503 /maintenance.html
  RewriteEngine on
  RewriteCond %{DOCUMENT_ROOT}/../tmp/stop.txt -f
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ /$1 [R=503,L]

<Directory /var/www/html/application/public/>
  AllowOverride all
  # MultiViews must be turned off.
  Options -MultiViews
</Directory>

  ErrorLog logs/application_3.3.3_log

</VirtualHost>

有人能看出我做错了什么吗?我很困惑,仅仅更改服务器名称就可以做到这一点。

答案1

这是缓存问题 - 这是我的一个愚蠢的疏忽。清除缓存后一切正常。

相关内容