nginx操作命令
- 进入到
Nginx
的安装目录:cd /xx/nginx/sbin/
./nginx
- 停止命令:
./nginx -s stop
./nginx -s quit
- 重新加载配置信息
./nginx -s reload
- 查看nginx版本
./nginx -version
- 测试
nginx
状态
./nginx -t
Nginx语法详解
语法规则: location [=|~|~*|^~|!~|!~*] /uri/ { … }
=
开头表示精确匹配
^~
开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx
不对url
做编码,因此请求为/static/20%/aa
,可以被规则^~ /static/ /aa
匹配到(注意是空格)。以xx开头
~
开头表示区分大小写的正则匹配 以xx结尾
~*
开头表示不区分大小写的正则匹配 以xx结尾
!~
和!~*
分别为区分大小写不匹配及不区分大小写不匹配 的正则
/
通用匹配,任何请求都会匹配到。
Nginx命令介绍
root
命令- 指定静态资源目录位置,它可以写在
http
、server
、location
等配置中。
- 指定静态资源目录位置,它可以写在
root path
例如:
location /image {
root /opt/nginx/static;
}
当用户访问 www.test.com/image/1.png
时,实际在服务器找的路径是 /opt/nginx/static/image/1.png
[注意] root
会将定义路径与 URI 叠加, alias
则只取定义路径。
alias
命令- 它也是指定静态资源目录位置,它只能写在
location
中。
- 它也是指定静态资源目录位置,它只能写在
location /image {
alias /opt/nginx/static/image/;
}
当用户访问 www.test.com/image/1.png
时,实际在服务器找的路径是 /opt/nginx/static/image/1.png
[注意] 使用 alias
末尾一定要添加 /
,并且它只能位于 location
中。
Nginx配置动静分离
# 所有静态请求都由nginx处理,存放目录为html
location ~* \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
root e:wwwroot;
}
# 所有动态请求都转发给tomcat处理
location ~ \.(jsp|do)$ {
proxy_pass http://test;
}
-
Nginx
中的proxy_pass
-
分两类:
- 1)只包含IP和端口号,端口号之后无/,成为不带URI的方式;
- 2)端口号之后有其它路径,分两类:只有单个/,其他路径;
-
Nginx
反向代理- 反向代理就是后端服务不直接对外暴露,请求首先发送到
nginx
,然后nginx
将请求转发到后端服务器,比如tomcat php
等.如果后端服务只有一台服务器,nginx
在这里只有一个作用就是起到了代理后端服务接收请求的作用.称之为反向代理.
- 反向代理就是后端服务不直接对外暴露,请求首先发送到
Nginx中映射前端访问URL的规则
1)例如:/export/test/platform/
目录下存在abc文件夹,Nginx
中的配置信息为:
location ^~/ {
root /export/test/platform/;
index index.html index.htm;
}
前端访问路径为:http://<服务器IP地址或域名>/abc
时,会访问/export/test/platform/
目录下的abc
。
Nginx
配置示例
server {
listen 80;
server_name www.test.com;
# 只有当访问 www.test.com/match_all/ 时才会匹配到/usr/share/nginx/html/match_all/index.html
location = /match_all/ {
root /usr/share/nginx/html
index index.html
}
# 当访问 www.test.com/1.jpg 等路径时会去 /usr/share/nginx/images/1.jpg 找对应的资源
location ~ \.(jpeg|jpg|png|svg)$ {
root /usr/share/nginx/images;
}
# 当访问 www.test.com/bbs/ 时会匹配上 /usr/share/nginx/html/bbs/index.html
location ^~ /bbs/ {
root /usr/share/nginx/html;
index index.html index.htm;
}
}