公司環境:
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"; } }