nginx常用命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/进入到sbin目录 cd/usr/local/nginx/sbin/启动nginx:./nginx
停用:./nginx -s stop 强制杀掉进程
退出:./nginx -s quit 待nginx进程处理完毕进行停止
查询:ps aux | grep nginx
重启:先停止 ./nginx -s quit 在启动 ./nginx
重新加载配置文件:./nginx -s reload
nginx配置https
配置参考:blog.csdn.net/smartdt/art…
- 默认的nginx配置没有http_ssl_modules模块,需要重新配置
通过命令查看是否配置
/usr/local/nginx/sbin/nginx -V
- 配置http_ssl_mudules
2.1 进入到nginx目录(下载的文件包目录,不是安装目录)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
2.2 编译
make
3.nginx配置文件配置
下载nginx配置的https证书
cert目录在conf目录下
server { listen 443 default ssl; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/xiaoyueyue.crt; ssl_certificate_key cert/xiaoyueyue.key;
ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; }}
nginx中alias配置详解
alias正如其名,为别名的意思,alias指定的路径是location的别名,不管location的值怎么写,资源的真实路径都是alias指定的路径(location的值会被忽略),alias配置的路径后面最好跟上/,否则会造成访问不到文件的情况(这种情况是当访问到alias下级目录的时候会出现)
具体配置示例如下
- 1.当访问xxxx.com/pic/1.jpg时,… html/images/1.jpg
location匹配到pic之后,会把访问路径pic后面的路径拼接到alias目录进行访问
location /pic/ { alias html/images/ }
配置注意事项
location配置的值 比如 /pic/ :可以以/结尾,/pic:也可以不以/结尾,如果不加"/"结尾,访问的路径可以加或者不加"/", 如果path后面家里“/”,那么访问的路径后面一定要加上“/”,否则访问不到文件 alias对于的目录也可以加"/" ,其实也可以不加"/",如果不加可能导致访问不到目录,最好加上 以上两种情况都是把路径指向一个文件目录 配置的习惯最好 location的path不加"/", 而alias配置的路径以"/"结尾
如果alias的配置路径指向一个具体的文件, 当访问xxx.com/pic时可以直接访问到…
location /pic {
alias html/images/1.jpg
}
nginx中root配置详解
root中配置的目录是location中path目录的上一级目录,path指定的目录一定要真实存在于root指定的目录下,不然会访问不到文件
具体配置访问示例如下:
当访问xx.com/pic/1.jpg时,…, pic目录是存在于html目录之下的
location /pic {
root html;
}
配置注意事项
- root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问
- root一般配置location / 的目录,alias 一般配置location /path的目录
nginx中proxy_pass配置详解
proxy_pass主要在nginx中用来做代理转发
具体配置访问如下,当访问xxx.com/test/index.…
1.其访问的服务器具体地址为http://127.0.0.1/index.html
location /test/ {
proxy_pass http://127.0.0.1/;
}
- 其访问的服务器具体地址为http://127.0.0.1/test/index.html
location /test/ {
proxy_pass http://127.0.0.1;
}
- 其访问的服务器具体地址为http://127.0.0.1/my/index.html
location /test/ {
proxy_pass http://127.0.0.1/my/;
}
- 其访问的服务器具体地址为http://127.0.0.1/myindex.html, 此种情况比较特效,如果proxy_pass的路径后面有文件目录并且没有"/"结尾
location /test/ {
proxy_pass http://127.0.0.1/my;
}
配置注意事项
- 当proxy_pass路径以“/”结尾时,表示绝对路径,真实的代理路径不会拼接location的路径值
- 当proxy_pass 路径不以 “/”结尾时,表示相对路径,真实的代理路径会拼接location的路径值
- location中的path路径最好以"/"结尾,为了方便配置和规范化,建议所有proxy_pass的路径后面都以"/"结尾
- 如果location中的path以 “/”结尾,而proxy_pass中的路径不以"/”结尾,并且带有目录,可能会导致访问失败
nginx中正则匹配配置
nginx的匹配规则一种可以分为四种
- location = /path {}
- lcoation /path {}
- location ^~ /path {}
- location ~* /path {}
1.精准匹配 一般跟目录的网址可以使用此方法, 如果以/访问,则不会去查找其他规则
location = / {
root html;
}
- 路径匹配,如果匹配到/path,则还会去查找其他正则匹配规则
location /path {
}
- 带^~的路径匹配,如果匹配到/path, 则会停止查找,不会再去匹配其他正则
location ^~ /path {
}
- 正则匹配
// 大小写敏感, 只能匹配到http://xxx.com/pic
location ~ /pic {
}
// 大小写不敏感, 能匹配到http://xxx.com/pic,也能匹配到http://xxx.com/Pic
location ~* /pic {
}
// 匹配以某个字符结尾
location ~* \.(jpg|png)$ { }
- nginx内部跳转
location /index/ {
error_page 404 @auto_index
}
loaction @auto_index {}
nginx中静态资源缓存配置
nginx配置反向代理
反向代理的作用是让用户先访问nginx代理服务器,然后在访问内部网络,可以作为中间代理层做优化处理
http {
upstream srrapp {
server 127.0.0.1:3000;
}
server {
listen 8899;
server_name localhost;
location / {
proxy_pass http://srrapp
}
}
}
nginx配置history路由访问
前端使用browerHistory路由打包后 发布nginx配置
新增server server { listen 8899; server_name localhost;
location / { root html/high-speed; try_files $uri $uri/ /index.html = 404; // 配置 # index index.html index.htm; }}
重启nginx ./nginx -s reload
nginx配置负载均衡
upstream模块,当访问一个路由时,可以对请求进行转发,转发到不同的服务器处理请求,实现负载均衡的功能,可以配置负载的规则,默认按照权重weight,如下如果设为4就是4比1,每8003请求4次,8004在请求一次
upstream backend {
server xxx:8003 weight=4;
server xxx:8004;
}
server {
listen 8001;
location /login {
proxy_pass http://backend;
}
}
server {
listen 8003;
location /login {
alias html/test/;
index index.html index.htm;
}
}
server {
listen 8004;
location /login {
alias html/
index index.html index.htm
}
}
nginx中location配置规则
从优先级区分可以分为三种:精准匹配 > 普通匹配 > 正则匹配
1.精准匹配
location = /patt {
}
- 普通匹配
// 匹配规则以最长的主
location /patt {
}
location /patt/xx {}
- 正则匹配
// 匹配规则从上到下
location ~ patt {
}