有一个需求:
两个域名指向同一个nignx,不同的域名404跳转页面不同。如www.y.com跳到www.y.com/error.html ,www.j.com跳到www.j.com/errorxxx.html
配置如下:
server {
listen 80;
server_name www.j.com www.y.com s.jd.com s.y.com; access_log logs/www.j.com/access.log main; error_page 404 500 502 503 504 @fallback; //跳转到@fallback逻辑 location / {
proxy_pass http://localhost:8080/;
proxy_intercept_errors on;
if ($host ~* s.j.com){ //不同的host,重定向规则不同
rewrite ^/(.*)$ http://www.j.com permanent;
}
if ($host ~* s.y){
rewrite ^/(.*)$ http://www.y.com permanent;
}
} location = /j_error.html {
root /html;
index 50x.html;
} location @fallback {
if ($host ~* www.y.com){ //如果域名包含www.y.com
return http://www.y.com/errorxxx.html;
}
return http://www.j.com/error.html; //其他情况
} }
初步测试成功,作为连server都没有配过的人,东看看,西试试,不容易啊!