nginx通过规则实现切换接口访问和后台管理页面

公司环境:
18年广西电信客户的网络环境了,因为访问流量较大是有10台 apache 业务机,后台管理2台,接口访问的8台,MySQL主备,redis主备。
因为nginx 代理接了10台 apache,nginx代理上配置一样,端口对外也只有一个,接口访问和后台管理都是一个接口,这时候就要通过nginx规则来实现不同的url访问不同的主机。
url接口访问:
1.接口形式都是*.php然后加一些参数
2.部分接口是通过目录访问,有app目录,有onemall目录
3.后台访问直接就是域名加端口的形式访问
 
 
直接上nginx配置,其中接口要做数据缓存,后台管理不需要,通过一个server配置4个location来实现
cat vhost.conf
proxy_redirect off;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 60;
proxy_buffers 32 64k;
proxy_buffer_size 16k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
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_cache_use_stale  updating;
proxy_cache_lock  on;
proxy_cache_lock_timeout  3;
 
#proxy_temp_path /data/nxcache/temp;
proxy_cache_path /data/nxcache/cache1  levels=1:2 keys_zone=cache1:1024m  max_size=20g inactive=30m;
proxy_cache_path /data/nxcache/cache2  levels=1:2 keys_zone=cache2:1024m  max_size=30g inactive=1d;
 
upstream jiekou {
    server 90.77.4.3:5181 weight=1;
    server 90.77.4.4:5181 weight=1;
    server 90.77.4.5:5181 weight=1;
    server 90.77.4.6:5181 weight=1;
    server 90.77.4.7:5181 weight=1;
    server 90.77.4.8:5181 weight=1;
    server 90.77.4.9:5181 weight=1;
    server 90.77.4.10:5181 weight=1;
}
upstream as {
    server 90.77.4.1:5181;
}
 
server {
    listen                *:80;
    server_name          xxxxxxx.com;
    access_log           /data/nginxlogs/as_local_access/as_access.log main;
    error_log             /data/nginxlogs/error.log;
   #匹配app目录接口
    location ^~ /app/ {
        proxy_set_header Host $host;
        proxy_pass          http://jiekou;
        proxy_read_timeout  60;
        #proxy_cache cache1;
        #proxy_cache_key    $host$uri$is_args$args;
        ##proxy_cache_key    $uri;
        #proxy_cache_valid 200 206 304 5m;
        #proxy_cache_valid 404 1s;
        add_header  Nginx-Cache "$upstream_cache_status";
}
    #匹配onemall目录接口
    location ^~ /onemall/ {
        proxy_set_header Host $host;
        proxy_pass          http://jiekou;
        proxy_read_timeout  60;
        #proxy_cache cache1;
        #proxy_cache_key    $host$uri$is_args$args;
        ##proxy_cache_key    $uri;
        #proxy_cache_valid 200 206 304 5m;
        #proxy_cache_valid 404 1s;
        add_header  Nginx-Cache "$upstream_cache_status";
    }
    #匹配*.php文件接口
    location ~* \.(php)$ {
        proxy_set_header Host $host;
        proxy_pass          http://jiekou;
        proxy_read_timeout  60;
        #proxy_cache cache1;
        #proxy_cache_key    $host$uri$is_args$args;
        ##proxy_cache_key    $uri;
        #proxy_cache_valid 200 206 304 5m;
        #proxy_cache_valid 404 1s;
        add_header  Nginx-Cache "$upstream_cache_status";
    }
    #匹配访问后台管理页面
    location ~ / {
        proxy_set_header Host $host;
        proxy_pass          http://as;
        proxy_read_timeout  60;
        #proxy_cache cache1;
        #proxy_cache_key    $host$uri$is_args$args;
       # #proxy_cache_key    $uri;
        #proxy_cache_valid 200 206 304 1d;
        #proxy_cache_valid 404 1s;
        add_header  Nginx-Cache "$upstream_cache_status";
    }
}

猜你喜欢

转载自www.cnblogs.com/daboluoya/p/11579922.html