nginx配置动静分离

本文介绍了如何通过Nginx配置实现静态资源如CSS、JS、图片的本地托管,以减轻Tomcat服务器的压力,提高网站性能。同时,讲解了Nginx的URL重写规则来实现URL隐藏参数,增强安全性。此外,还涵盖了Nginx的负载均衡配置,包括轮询和权重分配,以及防火墙规则设置,确保多台服务器的稳定访问。
摘要由CSDN通过智能技术生成

原理:静态页面和里面的图片js资源有很多,如果这些都放到tomcat服务器,nginx每次都要转发反向代理。把一些今天资源和图片、js代码放到nginx服务器上就节省很多资源。

以前的做法:都放到tomcat上 

 

配置nginx:

 最简单配置静态资源:添加多个location{}

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
   
   #2台反向代理负载均衡,默认轮训
   #按比例负载均衡
   upstream httpds{
   server 192.168.208.200:80 weight=8;
   server 192.168.208.201:80 weight=2;
   server 192.168.208.202:80 weight=1;

    }
    server {
        listen       80;
        server_name  localhost;


        location / {
        
        #会被代理到这个地址,只写一个代理,需要写全名,配置外网

        #proxy_pass http://www.baidu.com;      

        #配置内网

        proxy_pass http://https;
        

        }
     #css静态资源,本机路径下的资源
      local /css{
        root html;
        index index.html index.htm;
     }
     #image静态资源,本机路径下的资源
      local /image{
        root html;
        index index.html index.htm;
     }
     #js静态资源,本机路径下的资源
      local /js{
        root html;
        index index.html index.htm;
     }

        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       }
}
 

正则配置动静分离:

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
   
   #2台反向代理负载均衡,默认轮训
   #按比例负载均衡
   upstream httpds{
   server 192.168.208.200:80 weight=8;
   server 192.168.208.201:80 weight=2;
   server 192.168.208.202:80 weight=1;

    }
    server {
        listen       80;
        server_name  localhost;


        location / {
        
        #会被代理到这个地址,只写一个代理,需要写全名,配置外网

        #proxy_pass http://www.baidu.com;      

        #配置内网

        proxy_pass http://https;
        

        }
        location ~*/(js|image|css){
               root html;
               index index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       }
}

 

静态文件和缓存往前面放,还是比较好的。不要放到后台服务器。

配置URLRewrite的使用场景:

请求地址:http://192.168.208.200:8080/index?number=3 

太暴露,修改为:

http://192.168.208.200:8080/3 

rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,
重定向到replacement,结尾是flag标记。

rewrite        <regex>      <replacement>           [flag]
关键字          正则               替代内容                    flag标记

关键字:其中关键字error_log不能改变
正则:per1兼容正则表达式语句进行规则匹配
替代内容:讲座恒泽匹配的内容替换成replacement
flag标记:rewrite支持的flag标记

rewrite参数的标签段位置:
service,location,if

flag标记说明:
last #本条规则匹配
break#本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent#返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

rewritr   ^/([0-9]+).html$     /index.html?number=$1      break;

 

配置文件:

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
   
   #2台反向代理负载均衡,默认轮训
   #按比例负载均衡
   upstream httpds{
   server 192.168.208.200:80 weight=8;
   server 192.168.208.201:80 weight=2;
   server 192.168.208.202:80 weight=1;

    }
    server {
        listen       80;
        server_name  localhost;


        location / {
        
        #会被代理到这个地址,只写一个代理,需要写全名,配置外网

        #proxy_pass http://www.baidu.com;      

        #配置内网
        rewrite ^/([0-9]+)/index$           /index?number=$1 break;
        proxy_pass http://https;
        

        }
        location ~*/(js|image|css){
               root html;
               index index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       }
}

网关配置:

 

重启防火墙:
systemctl restartfirewalld

重载规则
firewall-cmd --reload

查看已配置规则
firewall-cmd --list-all

指定端口和ip访问
firewall-cmd --permament --add-rich-rule="rule family="1pv4" source address="192.168.44.101" port protocol="tcp" port="8080" accept"

移除规则
firewall-cmd --permament --remove-rich-rule="rule family="1pv4" source address="192.168.44.101" port protocol="tcp" port="8080" accept"

配置网关nginx:也就是多台主机同时做负载均衡

 

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
   
   #2台反向代理负载均衡,默认轮训
   #按比例负载均衡
   upstream httpds{
   server 192.168.208.200:80 weight=8 down;

   #这俩台服务器安装nginx,网关服务器
   server 192.168.208.201:80 weight=2;
   server 192.168.208.202:8080 weight=1;

    }
    server {
        listen       80;
        server_name  localhost;


        location / {
        
        #会被代理到这个地址,只写一个代理,需要写全名,配置外网

        #proxy_pass http://www.baidu.com;      

        #配置内网
        rewrite ^/([0-9]+)/index$           /index?number=$1 break;;
        proxy_pass http://https;
        

        }
        location ~*/(js|image|css){
               root html;
               index index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值