背景
nginx是一款高性能的服务器,用途很多。除了可以作为后端服务的负载均衡反向代理服务器,还有一个用途就是做静态资源的缓存服务器。
当前项目基本上都是前后端分离,为了加速前端页面的响应速度,可以将前端的相关资源,如html,js,css或者图片放到nginx指定目录下。访问的时候只需要IP加路径就可以实现高效快速的访问。
简单配置
一.首先安装好nginx,启动nginx服务且能够正常访问 Welcome to nginx!界面
二.配置静态资源访问核心是配置nginx.conf文件,找到nginx.conf文件
三.配置nginx.conf
3.1.在nginx.conf的http节点中添加配置,参考下方格式:
server {
listen 8000;
listen somename:8080;
server_name somename alias another.alias;
location / {
root html;
index index.html index.htm;
}
}
3.2 解读server节点各参数含义
listen:代表nginx要监听的端口
server_name:代表nginx要监听的域名
location :nginx拦截路径的匹配规则
location块:location块里面表示已匹配请求需要进行的操作
3.3 location配置详解
语法规则: location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头
~ 开头表示区分大小写的正则匹配 以xx结尾
~* 开头表示不区分大小写的正则匹配 以xx结尾
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。
例子,有如下匹配规则:
3.4 root、alias和rewrite 重定向的区别(URI重定向?就是说访问某一个或者某一规则URI时由Nginx的配置来决定重定向到另外一个或一类URI)
3.4.1 root
将会重定向到 E:/opt/wf/icsp/static/ ,是用来设置根目录
3.4.2 alias
将会重定向到 E:/opt/wf/ ,是用来重置当前文件的目录
3.4.3 rewrite
这两种效果是一样的。^/ITwalking/(.*?)$是正则,表示满足这个正则的请求,都重定向到D:/resources/page/下,/$1重定向的地址,break终止匹配。
rewrite是针对http请求的,它里面的路径是网址里面的地址,rewrite做的是地址间的转换。
疑惑:在使用alias时,可能会产生重复定向问题,但是加上index debug-all.html index.html;后问题解决,具体原因尚不清楚。