问题描述
有一个问题,我需要为所有请求返回404,但为“ / v2 / xx”完成的请求除外 Nginx被用作前端负载均衡器。
location / {
已经用于全局配置,由于它是由puppet管理的,因此我无法触摸它,它将破坏其他虚拟主机配置。
我需要return 404
用于:
www.site.example.com
www.site.example.com/xxxxx
但是我需要return 200
www.site.example.com/v2
有一个类似的问题,但不适用于我的情况:
Return 404 with nginx to all locations except for one
实际配置如下:
server {
listen $IPv4_ADDRESS:443 http2 ssl;
listen [$IPv6_ADDRESS]:443 http2 ssl;
server_name site.example.com;
include /etc/nginx/conf.d/site_proxy.inc;
include /etc/nginx/conf.d/site_proxy-cache.inc;
add_header X-Frame-Options "SAMEORIGIN";
location /v2 {
if ($request_method = POST) {
rewrite ^/v2(.*) /products/~SITE.$request_method;
}
if ($request_method != POST) {
rewrite ^/v2(.*) /products/!SITE.$request_method;
}
limit_req zone=site burst=5;
}
proxy_set_header X-Original-URL $scheme://$host$request_uri;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
if ($scheme = "https") {
add_header Strict-Transport-Security $sts;
}
proxy_ssl_name $host;
proxy_pass https://siteexample443;
}
ssl_certificate /etc/nginx/ssl/site_example_com.crt;
ssl_certificate_key /etc/nginx/ssl/site_example_com.key;
access_log /var/log/nginx/site_example_com.log;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)