• 【Nginx】反向代理、动静分离、负载均衡、Rewrite、防盗链


    反向代理

        server {
            listen        8081;
            server_name    www.fan.cn;
            location / {
                proxy_pass http://127.0.0.1:5001;
            }    
        }

    动静分离

    动静分离可通过location对请求url进行匹配,将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。通常将静态资源放到nginx中,动态资源转发到tomcat服务器中。

    server {
            listen        8083;
            server_name    *.fan.cn;
            
            # 当url中有/static时,会和root目录路径拼接,也就时html/static目录下找文件
            location /static {
                root     html;
                index    index.html index.htm;
            }
            
            location / {
                proxy_pass http://127.0.0.1:5001;
            }
        }

    当访问http://order.fan.cn:8083/static/1.jpg时,会去nginx中的html/staic目录找文件,当访问http://order.fan.cn:8083,去将请求转发到http://127.0.0.1:5001

    负载均衡

    #定义一组服务器
    upstream myServers1
        {
            server 127.0.0.1:5000;
            server 127.0.0.1:5001;
        }
        server {
            listen        8084;
            server_name    *.fan.cn;
            location / {
                proxy_pass http://myServers1;
            }    
        }

    以上配置使用轮询模式,5000、5001会交替被访问

    其他负载均衡模式

    • 权重模式
    upstream myServers1
        {
            server 127.0.0.1:5000 weight=1;
            server 127.0.0.1:5001 weight=3;
        }
    • ip_hash
      根据客户端的ip地址转发同一台服务器,可以保持会话,但是很少用这种方式去保持会话,例如我们当前正在使用wifi访问,当切换成手机信号访问时,会话就不保持了。
    • least_conn
      最少连接访问,优先访问连接最少的那一台服务器,这种方式也很少使用,因为连接少,可能是由于该服务器配置较低,刚开始赋予的权重较低。
    • url_hash(需要第三方插件)
      根据用户访问的url定向转发请求,不同的url转发到不同的服务器进行处理(定向流量转发)。
    • fair(需要第三方插件)
      根据后端服务器响应时间转发请求,这种方式也很少使用,因为容易造成流量倾斜,给某一台服务器压垮。

    upstream参数

    • server 反向服务地址加端口
    • weight 权重,默认是1,越大权重就越大
    • max_fails 失败多少次认为主机已挂掉则,踢出 (默认配置10s,即服务器宕掉,会自动剔除)
    • fail_timeout 踢出后重新探测时间
    • backup 备用服务,当其他非backup的机器全部宕机或者繁忙的时候,才会启动这台机器。
    • down 表示当前Server不参与负载
    upstream myApiTest {
        server localhost:9001 backup;
        server localhost:9002 down;
        server localhost:9003;
    }
    • max_conns 允许最大连接数
    • slow_start 当节点恢复,不立即加入,而是等待 slow_start 后加入服务对列。

    Rewrite

    掩藏真实的url以及url中可能暴露的参数,以及隐藏web使用的编程语言,提高安全性便于搜索引擎收录

    server {
            listen        8085;
            server_name    *.fan.cn;
            location / {
                rewrite ^/product.html$ /product/index break;
                proxy_pass http://127.0.0.1:5001;
            }    
        }

    防盗链

       location ^~/images/ {
                valid_referers 192.168.8.102;  #valid_referers 指令,配置是否允许 referer 头部以及允许哪些 referer 访问。192.168.8.102不是ip而是域名(去掉http:// 前缀)
                if ($invalid_referer) {  # 注意这里if后要加空格
                    return 403; ## 返回错误码
                }
                
                root   /www/resources;
            } 
     
  • 相关阅读:
    es3的语法来模拟es5的bind方法
    js判断变量的类型(使用闭包来玩一把)
    获取一组时间中的最近的日期
    可以设置超时版的的fetch
    错误排查
    如何查看Linux的CPU负载
    shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作
    Swoole server函数列表(转载)
    php的反射
    PHP共享内存
  • 原文地址:https://www.cnblogs.com/dongh/p/16323357.html
Copyright © 2020-2023  润新知