nginx相关

1、pid的位置及作用

示例:pid  pid/nginx.pid;

简介:nginx.pid文件存储master进程的ID,启动、停止nginx时需要使用到。应注意配置的路径Nginx有该目录的写权限。

2、nginx进程数设置

worker_processes  20;

指定Nginx worder进程个数。如果没有阻塞式调用,建议进程个数和CPU内核数相同,如果有阻塞式调用,建议比CPU内核数稍大一点。

3、绑定Nginx worker进程到指定的CPU

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

简介:绑定到不同的CPU可以减少抢占同一个CPU的情况。

4、server匹配规则

首先要匹配listen的端口,然后按照server_name进行匹配。

Host可以与多个server_name匹配时按照以下优先级进行匹配(假设Host为www.xxx.com):

  1. 所有字符完全匹配的,eg:www.xxx.com
  2. 通配符在前面的,eg:*.xxx.com
  3. 通配符在后面的,eg:www.xxx.*
  4. 正则表达式,eg:~^(?<www>.+)\.xxx\.com$。这里正则表达式的’~‘是必须加的,参见http://nginx.org/en/docs/http/server_names.html

Host与所有的server_name均不匹配时:

  1. listen中有default或default_server的server块
  2. 第一个匹配端口的server块

5、location匹配

语法:location [=|~|~*|^~|@] /uri/ {...}

示例:

location ~ ^/xxx/static/combo\b {

    if ($http_orp_virtual_port = "8080") {

        rewrite ^/(.*)$ https://$host/$1 redirect;

    }

    rewrite ^/(.*)$ / break;

    root /home/work/orp/xx;

    concat on;

    concat_max_files 10;

    concat_unique off;

}

匹配规则如下(假设请求的uri为/module/controller/action):

  • = 表示把URI作为字符串,做完全匹配,eg:location = /module/controller/action
  • ~ 表示匹配时是大小写敏感的
    • location ~ /module/controller/action匹配成功
    • location ~ /Module/Controller/Action匹配失败
  • ~* 表示匹配时不区分大小写
  • ^~ 表示匹配uri时只要前半部分匹配即可,eg:location ^~ /module/
  • @ 表示仅用于Nginx内部的重定向

location在匹配时,若有多个location都可以匹配,是取第一个匹配的location。这点和server的匹配方式不同。

6、定义upstream

upstream块定义了一个上游服务器的集群,在反向代理时通过proxy_pass使用。

upstream xxx_server_name {

    server 19.143.127.26:8240;

    server 19.26.208.54:8200 backup;

    server 19.58.37.36:8220 backup;

    server 19.128.168.43:8250 backup;

}

location / {

    set $subsys xxx;

    set $pub_env $case;

    if ( $pub_env ~ "1" ) {

        proxy_pass http://xxx_server_name;

        break;

    }  

    if ( $pub_env ~ "2" ) {

        proxy_pass http://xxx_server_name;

        break;

    }  

    if ( $pub_env ~ "0" ) {

        proxy_pass http://wallet-core_wallet-core-prev_server_name;

        break;

    }  

}

7、什么叫反向代理

        说到反向代理,一个好奇的东西肯定就是为什么是“反向”。举个栗子好了,我通过科学上网工具,访问墙外的网站www.xxx.com,www.xxx.com不知道真正请求他的客户端是谁,方向定义为为“正”,代理就是“科学上网工具”;而反向代理,我请求www.xxx.com,而www.xxx.com内部转发给了其他服务器,方向定义为“反”,代理就是负责转发的那台服务器。

8、nginx作为反向代理的作用和特点

        书中介绍了Nginx作为反向代理服务器的特点,当客户端发来HTTP请求时,Nginx不会立刻转发到上有服务器,而是把请求完整的接收后,再向上有服务器发起连接,把缓存的客户端请求转发到上游服务器。

         这种反向代理的方式,缺点是延长了一个请求的时间、增加了缓存;优点则是减轻了上游服务器的压力,因为外部请求的传输速度相对于内部转发较慢,缓存完外部请求后再请求上游服务器可以减少维持连接的时间,进而减轻了上游服务器的压力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值