Nginx的配置与开发学习(四):动静分离

本文详细介绍了Nginx中动静分离的配置方法,通过中间件将动态请求和静态请求分离,提高网站响应速度。同时,深入探讨了Nginx的rewrite规则,包括URL重写、SEO优化及安全实现伪静态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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规则

  1. URL访问跳转,支持开发设计

    如:页面跳转,兼容性支持,展示效果等

  2. SEO优化

  3. 维护 rewrite ^(.*)$ /pages/weihu.html break;所有请求都跳转到维护界面

    如:后台维护,流量转发等

  4. 安全 实现伪静态

正则表达式
.匹配除换行符以外的任意字串
?重复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"}';
    }
}
  1. Rewrite规则优先级
    • 执行server块的rewrite指令
    • 执行location匹配
    • 执行选定的location中的rewrite
  2. 优雅的Rewrite规则书写
server{
    listen  80;
    server_name nginx.org;
    rewrite ^ http://www.nginx.org$request_uri?;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值