• nginx配置


    一、server_name

    解释server_name的意义,文章最后会解释server在整个访问请求的流程;先上一段配置;

    server {
    listen ip:端口;
    # 当listen出现了ip时,server_name就失去了意义。所以不配置也罢了。
    #server_name 域名;

    access_log 日志地址1;
    error_log 日志地址2;

    location / {
    root /data/www/151;
    index index.html index.htm;
    }
    }
    客户端通过域名访问服务器时会将域名与被解析的ip一同放在请求中。当请求到了nginx中时。nginx会先去匹配ip,如果listen中没有找到对应的ip,就会通过域名进行匹配,匹配成功以后,再匹配端口。

    当这三步完成,就会找到对应的server的location对应的资源。

    二、location配置

    location = / {
        # 仅仅匹配请求 /
        [ configuration A ]
    }
    location / {
        # 匹配所有以 / 开头的请求。
        # 但是如果有更长的同类型的表达式,则选择更长的表达式。
        # 如果有正则表达式可以匹配,则优先匹配正则表达式。
        [ configuration B ]
    }
    location /documents/ {
        # 匹配所有以 /documents/ 开头的请求。
        # 但是如果有更长的同类型的表达式,则选择更长的表达式。
        # 如果有正则表达式可以匹配,则优先匹配正则表达式。
        [ configuration C ]
    }
    location ^~ /images/ {
        # 匹配所有以 /images/ 开头的表达式,如果匹配成功,则停止匹配查找。
        # 所以,即便有符合的正则表达式location,也不会被使用
        [ configuration D ]
    }
    location ~* .(gif|jpg|jpeg)$ {
        # 匹配所有以 gif jpg jpeg结尾的请求。
        # 但是 以 /images/开头的请求,将使用 Configuration D
        [ configuration E ]
    }
    
     location / {
               root   html;    // 指的是/usr/local/nginx/html
               index  index.php index.html index.htm;
           }
    

    三、负载均衡策略

    轮询	         默认方式
    weight	         权重方式
    ip_hash	         依据ip分配方式
    least_conn	 最少连接方式
    

    1、轮询

    最基本的配置方法,上面的例子就是轮询的方式,它是upstream模块默认的负载均衡默认策略,

    备注:在轮询中,如果服务器down掉了,会自动剔除该服务器

    2、权重

    在轮询策略的基础上指定轮询的几率

    备注:在该例子中,weight参数用于指定轮询几率,weight的默认值为1,;

    weight的数值与访问比率成正比,比如Tomcat 7.0被访问的几率为其他服务器的两倍

     upstream dynamic_zuoyu {
            server localhost:8080   weight=2;  #tomcat 7.0
            server localhost:8081;  #tomcat 8.0
            server localhost:8082   backup;  #tomcat 8.5
            server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0
        }
    

    3、ip_hash

    指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器

    #动态服务器组
        upstream dynamic_zuoyu {
            ip_hash;    #保证每个访客固定访问一个后端服务器
            server localhost:8080   weight=2;  #tomcat 7.0
            server localhost:8081;  #tomcat 8.0
            server localhost:8082;  #tomcat 8.5
            server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0
        }
    • 在nginx版本1.3.1之前,不能在ip_hash中使用权重(weight)。
    • ip_hash不能与backup同时使用。
    • 此策略适合有状态服务,比如session。
    • 当有服务器需要剔除,必须手动down掉。

    四、压力测试

    # ab -n 2000 -c 2000 http://192.168.4.5/
    Benchmarking 192.168.4.5 (be patient)
    socket: Too many open files (24)                //提示打开文件数量过多

    五、proxy_pass

    假设server_name为www.xxx.com
    当请求http://www.xxx.com/aming/a.html的时候,以上示例分别访问的结果是
    
    示例2:
    location /aming/
    {
        proxy_pass http://192.168.1.10/;
        ...
    }
    结果2:http://192.168.1.10/a.html 示例3: location /aming/ { proxy_pass http://192.168.1.10/linux/; ... } 结果3:http://192.168.1.10/linux/a.html
  • 相关阅读:
    Insertion Sort Gym
    Codeforces Round #524 (Div. 2) C. Masha and two friends 思路
    PTA 数据结构——是否完全二叉搜索树
    Crane UVA
    Unidirectional TSP UVA
    排序二叉树的建立,查询与删除
    The Tower of Babylon UVA
    DAG上的动态规划——嵌套矩阵问题
    Paper Folding UVA
    多图片上传插件
  • 原文地址:https://www.cnblogs.com/wuchangblog/p/13963097.html
Copyright © 2020-2023  润新知