前言
当前Nginx 工作情况和新需求
- 当前 Nginx 工作情况:
- 所有的请求都按照一定规则进行重写然后转发服务器A。
- 新需求:
- 对请求进行过滤,符合某些格式的请求直接转发到服务器B
- 其他请求仍按原来的规则进行重写然后转发到服务器A。
当前Nginx配置
server {
listen 80;
server_name *.test.com;
set $city "";
if ( $host ~* "^(\w+)\.test\.com$") {
set $city $1;
}
rewrite ^/web/ $uri last;
rewrite ^/www/ $uri last;
rewrite ^/css/ $uri last;
rewrite ^/images/ $uri last;
rewrite ^/js/ $uri last;
rewrite ~*\.(css)$ www.test.com/$1 last;
rewrite ^/ajax/(\w+)/(\w+)$ /$1/$2 last;
rewrite ^/ctrl(\w+)/(\w+)\.html$ /$1/$2 last;
rewrite ^/ctrl(\w+)/(\w+)$ /$1/$2?city=$city last;
rewrite ^/ctrl(\w+)/(\w+)/(\w+)$ /$1/$2 last;
rewrite ^/(\w+)/(\w+)$ /$1/$2?city=$city last;
rewrite ^/(\w+)_(\w+)_(\w+)_(\w+)/index(\w+)\.html$ /city/index?city=$city&area=$1&type=$2&tab=$3&order=$4&p=$5? last;
rewrite ^/(\w+)_(\w+)_(\w+)_(\w+)/$ /city/index?city=$city