本文以IT黑名单站点为例,讲述nginx的常见配置。
前置信息:
顶层容器nginx,下面跑一个php应用监听9000端口(tucao.itblacklist.cn),一个java应用监听8000端口(www.itblacklist.cn)。
需求信息如下:
- html、js、css、jpg等静态资源尽量走nginx;
- 首页默认不带index.html 但是也走nginx;
- 前后端分离+优化url(笔者不确定这种优化是否起反作用),/s/?wd=xxx --> list.html?wd=xxx /details/{num} --> details.html?u={num}
- 其余请求转发到8000端口jetty容器(java应用);
- itblacklist.cn的请求及权重永久转到www.itblacklist.cn;
- tucao.itblacklist.cn转到php应用;
直接上配置
server { server_name www.itblacklist.cn; listen 80; root /opt/apps/blacklist/page; #nginx server根目录 # =精准匹配 /首页 该规则只匹配首页 location =/ {} # ~* 不区分大小写的正则匹配 匹配所有以.html .gif等结尾的请求 location ~* \.(html|gif|jpg|ico|js|css|map|svg|eot|tff|woff|woff2)$ {} # ^~ 匹配以某个开头的请求 该处匹配以/s/开头的请求 location ^~ /s/ { rewrite /s/(.+)$ /$1 break; proxy_pass http://www.itblacklist.cn/list.html; #... proxy头信息等 } location ~* /details/([0-9]+)$ { rewrite /details/(.+)$ /details.html?u=$1 break; } location / { proxy_pass http://www.itblacklist.cn:8000; #... } } server { server_name itblacklist.cn; rewrite ^(.*)$ http://wwww.itblacklist.cn$1 permanent; } server { server_name tucao.itblacklist.cn; location / { proxy_pass http://www.itblacklist.cn:9000; #... } }
重新加载nginx配置
nginx -s reload
至此,结束。
转载请注明来源【IT黑名单】