版权声明:转载记得宣传奥~。~ https://blog.csdn.net/c_ym_ww/article/details/88057991
Nginx动静分离
动静分离
-
通过中间件将动态请求和静态请求分离,从而分离资源,减少不必要的请求消耗,减少请求延时
-
动静分离的情况下,动态请求挂掉的情况下,也能请求到静态请求
test.conf的配置属性
upstream java_api{ server 127.0.0.1:8080; } server { listen 80; server_name localhost; #charset koi8-r; access_log /var/log/nginx/log/host.access.log main; root /opt/app/code; location ~ \.jsp$ { #所有jsp的请求 proxy_pass http://java_api; index index.html index.htm; } location ~ \.(jpg|png|gif)$ { expires 1h; gzip on; } location /{ index index.html index.htm; } ...... }
Nginx的rewrite规则
-
URL访问跳转,支持开发设计
如:页面跳转,兼容性支持,展示效果等
-
SEO优化
-
维护 rewrite ^(.*)$ /pages/weihu.html break;所有请求都跳转到维护界面
如:后台维护,流量转发等
-
安全 实现伪静态
正则表达式
. | 匹配除换行符以外的任意字串 |
---|---|
? | 重复0次或1次 |
+ | 重复1次或更多次 |
* | 最少链接数,哪个机器链接数少就发哪 |
\d | 匹配数字 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
[a-z] | 匹配a-z小写字母的任意一个 |
{n},{n,} | 重复n次,重复n次或更多次 |
\ | 转义字符 |
测试正则表达式:pcretest
rewrite.conf配置
配置语法中的flag字段类型:
last | 停止rewrite检测 |
---|---|
break | 停止rewrite检测 |
redirect | 返回302临时重定向,地址栏会显示跳转后的地址 |
permanent | 返回301永久重定向,地址栏会显示跳转后的地址 |
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/log/host.access.log main;
root /opt/app/code;
location ~ ^/break {
rewrite ^/break /test/ break;//不会继续往下请求,返回404
}
location ~ ^/last {
rewrite ^/last /test/ last; //会重新请求test,返回success
}
location ~ ^/last {
rewrite ^/last /test/ last;
#rewrite ^/last /test/ redirect;
}
location ~ ^/baidu {
rewrite ^/baidu http://www.baidu.com/ permanent; #永久重定向:Nginx停止也会重定向网址
#rewrite ^/baidu http://www.baidu.com/ redirect;
}
location /test/ {
default_type application/json;
return 200 '{"status":"success"}';
}
}
- Rewrite规则优先级
- 执行server块的rewrite指令
- 执行location匹配
- 执行选定的location中的rewrite
- 优雅的Rewrite规则书写
server{
listen 80;
server_name nginx.org;
rewrite ^ http://www.nginx.org$request_uri?;
}