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