我的网站带有ssl https://example.com
以及没有ssl http://site.example.com
的子域发生404错误时需要重定向到网站http://site.example.com
我的nginx conf文件看起来像那里
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_stapling on;
ssl on;
ssl_certificate /etc/ssl/example.com.crt;
ssl_certificate_key /etc/ssl/example.com.key;
location / {
proxy_pass http://localhost:5050;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
error_page 404 = 301 http://site.example.com/;
}
}
发生错误404,但没有重定向
答案 0 :(得分:2)
404响应的来源是上游localhost:5050
。
通常,nginx
会通过这些。如果要使用error_page
指令处理上游响应,则需要将proxy_intercept_errors
设置为on
。
例如:
proxy_intercept_errors on;
有关详细信息,请参见this document。