• Nginx 常用配置


    • Nginx的负载均衡方式

      

    1、轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    2、weight
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    例如:
    upstream bakend {
    server 192.168.0.14 weight=10;
    server 192.168.0.15 weight=10;
    }

    3、ip_hash
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
    例如:
    upstream bakend {
    ip_hash;
    server 192.168.0.14:88;
    server 192.168.0.15:80;
    }

    Nginx在局域网中使用ip_hash负载均衡策略,访问全部分发到同一个后台服务器

    for循环i取 012三个值,而ip的点分十进制表示方法将ip分成四段(如:192.168.1.1),但是这里循环时只是将ip的前三个段作为参数加入hash函数。这样做的目的是保证ip地址前三位相同的用户经过hash计算将分配到相同的后端server。

    作者的这个考虑是极为可取的,因此ip地址前三位相同通常意味着来着同一个局域网或者相邻区域,使用相同的后端服务让nginx在一定程度上更具有一致性。

    通过上述解释,已经基本判断出问题所在了。。
    主要原因就是,公司使用的局域网前三段ip相同,这样Nginx在ip_hash(for循环后三个参数统一计入hash值)的时候,就将该类所有ip都转发到一个后端了。

    另,不论A类B类C类等网络地址,Nginx的ip_hash算法都将一个ip地址的前三段作为hash的关键字。

    https://blog.csdn.net/sd4493091/article/details/54894479?utm_source=itdadao&utm_medium=referral

    4、fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    upstream backend {
    server server1;
    server server2;
    fair;
    }

    参考:https://blog.csdn.net/shuzl213/article/details/53366895

    • Nginx的proxy配置

    在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。

    下面四种情况分别用http://192.168.1.4/proxy/test.html 进行访问。

    第一种:

    location /proxy/ {

    proxy_pass http://127.0.0.1:81/;

    }

    会被代理到http://127.0.0.1:81/test.html 这个url

    第二咱(相对于第一种,最后少一个 /)

    location /proxy/ {

    proxy_pass http://127.0.0.1:81;

    }

    会被代理到http://127.0.0.1:81/proxy/test.html 这个url

    第三种:

    location /proxy/ {

    proxy_pass http://127.0.0.1:81/ftlynx/;

    }

    会被代理到http://127.0.0.1:81/ftlynx/test.html 这个url。

    第四种情况(相对于第三种,最后少一个 / ):

    location /proxy/ {

    proxy_pass http://127.0.0.1:81/ftlynx;

    }

    会被代理到http://127.0.0.1:81/ftlynxtest.html 这个url

    从结果可以看出,应该说分为两种情况才正确。即http://127.0.0.1:81 (上面的第二种) 这种和 http://127.0.0.1:81/…. (上面的第1,3,4种) 这种。

    • Nginx安全配置

    nginx禁止访问所有.开头的隐藏文件设置

    location ~ /. {

    deny all;

    }

    3) 重启nginx

    1.7 隐藏nginx的版本号

    1.7.1背景

    中间件与运行环境的信息泄露,可以帮助攻击者了解资产运行环境的情况,进一步针对特定运行环境寻找指定的漏洞进行攻击。

    1.7.2关闭步骤

    1)修改nginx的配置文件vi /usr/local/nginx/conf/nginx.conf

    2)在http {—}里加上server_tokens off;

    3) 重启nginx

    1.7.3验证步骤

    验证命令:curl -I 域名

  • 相关阅读:
    redis hash结构如何设置过期时间
    C# 激活主窗口
    C# 发送消息SendKeys、SendMessage、keybd_event的用法
    【总结】清除webbrowser cookie/session的6种方法
    清除webBrowser 缓存和Cookie的解决方案
    完美解决C#Webbrowser控件设置Cookie问题
    WebBrowser脚本错误的完美解决方案
    c# 控制IE浏览器
    法嵌入互操作类型“SHDocVw.ShellWindowsClass”请改用适用的接口-解决方法
    C# 总结const、 readonly、 static三者区别:
  • 原文地址:https://www.cnblogs.com/xiaoer/p/9896201.html
Copyright © 2020-2023  润新知