nginx通過規則實現切換接口訪問和后台管理頁面


公司環境:
18年廣西電信客戶的網絡環境了,因為訪問流量較大是有9台 apache 業務機,后台管理1台,接口訪問的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";
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM