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; }
阿帕奇配置:
<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>
誰能看到我做錯了什麼?我很困惑,簡單地更改伺服器名稱就是這樣做的。
這是一個記憶體問題——對我來說是一個愚蠢的疏忽。清除記憶體,一切正常。