前一篇:二、nginx服务的nginx.conf配置参数解析

后一篇:四、nginx服务器的参数配置解析


目录

一、虚拟主机设定模块

1、upstream模块配置样式

1.1、默认配置

1.2、weight(权重)配置

1.3、max_fails和 fail_timeout的配置

1.4、down的配置

1.5、backup的配置

1.6、max_conns的配置

2、ip_hash的配置

3、url_hash(第三方插件)

4、fair(第三方插件)

二、server配置


一、虚拟主机设定模块

#负载均衡服务器列表

#一般来说运维人员通常把负载均衡类别配置在相应的虚拟主机的配置文件中)

1、upstream模块配置样式

upstream fansik {#后端服务器访问规则ip_hash;#weight参数表示权重值,权值越高被分配到的几率越大server 192.168.1.101:8081 weight=5;server 192.168.1.102:8081 max_fails=3 fail_timeout=10s;
}

1.1、默认配置

upstream fansik {server 192.168.1.101:8081;server 192.168.1.102:8081;
}

默认的配置后端的服务器访问规则就是默认的轮询方式的,就简单的表述:

1进来访问192.168.1.101的服务

2进来访问192.168.1.102的服务

该轮询的访问规则时无法进行一个权重、或者是资源请求的判断的功能的。

1.2、weight(权重)配置

upstream fansik {#weight参数表示权重值,权值越高被分配到的几率越大server 192.168.1.101:8081 weight=5;server 192.168.1.102:8081 weight=1;
}

注:ip_hash 与 weight(权重)配置不可同时使用。

1.3、max_fails和 fail_timeout的配置

max_fails=number:该选项与 fail_timeout 配合使用,旨在 fail_timeout 时间段内,如果向当前的上游服务器转发失败次数超过 number,则认为在当前的 fail_timeout 时间段内这台上游服务器不可用。max_fails 默认为1,如果设置为0,则表示不检查失败次数。
fail_timeout=time:fail_timeout 表示该时间段内转发失败多少次后就认为上游服务器暂时不可用,用于优化方向代理功能。它与向上游服务器建立连接的超时时间、读取上游服务器的响应时间等完全无关,

upstream report{                                                                                                                       server 192.168.1.102:18080 max_fails=10 fail_timeout=60s;                                                                                                            server 192.168.1.103:28080 max_fails=10 fail_timeout=60s;                                                                                                            server 192.168.1.104:18080 max_fails=10 fail_timeout=60s;                                                                                                                                                                                                                       #ip_hash;
}

但是需要配置proxy_next_upstream参数使用的

location / {proxy_pass http://tomcatserver1;index  index.html index.htm;# proxy_next_upstreamproxy_next_upstream error timeout invalid_header http_500 http_503 http_404; proxy_connect_timeout 20s;proxy_read_timeout 20s;proxy_send_timeout 20s;
}

1.4、down的配置

down表示单前的server暂时不参与负载,不适用与ip_hash的访问策略的

upstream myServer {   server 192.168.1.102:9090 down; server 192.168.1.103:9090;
}

1.5、backup的配置

备用服务器, 其它所有的非backup机器down或者忙的时候,请求backup机器,简单的理解就是:只有在所有的非备份上游服务器都失效后,才会向所在的上游服务器转发请求

upstream myServer {   server 192.168.1.102:9090 backup; server 192.168.1.103:9090;
}

注:在使用 ip_hash 配置项时它是无效的。

1.6、max_conns的配置

# worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
upstream tomcats { server 192.168.1.102:8080 max_conns=2; server 192.168.1.103:8080 max_conns=2; server 192.168.1.104:8080 max_conns=2;
}

注:限制每台server的连接数,用于保护避免过载,可起到限流作用。

2、ip_hash的配置

使用场景:

在有些场景下,我们可能会希望来自某一个用户的请求始终落在国定的一台上游服务器中。例如,假设上游服务器会缓存一些信息,如果同一个用户的请求任意的转发到集群中的任一台上游服务器中,那么每一台上游服务器都有可能会缓存同一份信息,这既会造成资源的浪费,也会难以有效的管理缓存信息。ip_hash 就是泳衣解决上述问题的,它首先根据客户端的 IP 地址计算出一个 key,将 key 按照 upstream 集群里的上游服务器数量进行取模,然后以取模的结果把请求转发到相应的上游服务器中。这样就确保了同一个客户端的请求只会转发到指定的上游服务器中。

upstream backend {ip_hash;server 192.168.11.10:8080;server 192.168.11.11:8080;server 192.168.11.12:8080 down;server 192.168.11.13:8080;
}

3、url_hash(第三方插件)

url_hash按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存服务器时比较有效。 
在upstream中加入hash语句,hash_method是使用的hash算法

upstream resinserver{
server 192.168.10.10:8080;
server 192.168.10.11:8080;
hash $request_uri;
hash_method crc32;
}

4、fair(第三方插件)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream resinserver{
server 192.168.1.10:8080;
server 192.168.1.11:8080;
fair;
}

二、server配置

server {
    #监听80端口
    listen 80;
    #定义主机名,主机名可以有多个,名称还可以使用正则表达式(~)或通配符
    #(1)先做精确匹配检查
    #(2)左侧通配符匹配检查:*.fansik.com
    #(3)右侧通配符匹配检查:mail.*
    #(4)正则表达式匹配检查:如~^.*\.fansik\.com$
    #(5)detault_server
    server_name fansik.fansik.com;
    #设定本虚拟主机的访问日志
    access_log logs/fansik.fansik.com.access.log;

server {listen 80;server_name fansik.fansik.com;access_log logs/fansik.fansik.com.access.log;

location [=|~|~*|^~] uri {...}
    功能:允许根据用户请求的URI来匹配定义的个location,匹配到时,此请求将被相应的location配置块中的配置所处理
    =:表示精确匹配检查
    ~:正则表达式模式匹配检查,区分字符大小写
    ~*:正则表达式模式匹配检查,不区分字符大小写
    ^~:URI的前半部分匹配,不支持正则表达式
    !~:开头表示区分大小写的不匹配的正则
    !~*:开头表示不区分大小写的不匹配的正则
    /:通用匹配,任何请求都会被匹配到

location / {#定义服务器的默认网站根目录位置root html;#定义首页索引文件的名称index index.html index.htm;#引用反向代理的配置,配置文件目录根据编译参数而定include proxy.conf;    #定义后端负载服务器组proxy_pass http://fansik;}

#如果编译时加入了--conf-path=/etc/nginx/nginx.conf指定了配置文件的路径那么就把proxy.conf放在/etc/nginx/目录下
#如果没有制定配置文件路径那么就把proxy.conf配置放到nginx的conf目录下。

alias path和root path的区别;

    location /images/ {root "/data/images"}

访问:http://fansik.fansik.com/images/a.jpg 就是直接去访问服务的/data/images/images/a.jpg的内容

   location /images/ {alias "/data/images/"}

访问:http://fansik.fansik.com/images/a.jpg 就是直接去访问服务的/data/images/images/a.jpg的内容

#定义错误提示页面

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

#设定查看Nginx状态的地址
    #只能定义在location中
    #htpasswd -c -m /etc/nginx/.htpasswd fansik(-c 参数第一次创建时使用)

location /Status {stub_status on;allow all;#access_log off;#allow 192.168.1.0/24;#deny all;#auth_basic "Status";#auth_basic_user_file /etc/nginx/.htpasswd;
}

status结果实例说明:
Active connections: 1 (当前所有处于打开状态的连接数)
server accepts handled requests
174(已经接受进来的连接)

174(已经处理过的连接)

492(处理的请求,在保持连接模式下,请求数可能会多于连接数量)
Reading: 0 Writing: 1 Waiting: 0 
Reading:正处于接受请求状态的连接数
Writing:请求接受完成,正处于处理请求或发送相应的过程中的连接数
Waiting:保持连接模式,且处于活动状态的连接数

#基于IP的访问控制

    allow IP/Netmaskdeny IP/Netmasklocation ~ /\.ht {deny all;}

样式:

server {listen 80;server_name fansik.fansik.com;access_log logs/fansik.fansik.com.access.log;location / {root html;index index.html index.htm;include proxy.conf;    proxy_pass http://fansik;}location /images/ {root "/data/images"}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}location /Status {stub_status on;allow all;#access_log off;#allow 192.168.1.0/24;#deny all;#auth_basic "Status";#auth_basic_user_file /etc/nginx/.htpasswd;}allow IP/Netmaskdeny IP/Netmasklocation ~ /\.ht {deny all;}
}

三、nginx服务的nginx.conf的参数配置解析相关推荐

  1. 华为荣耀7x计算机,华为荣耀7x怎么样 华为荣耀7x参数配置解析

    华为荣耀7x怎么样 华为荣耀7x参数配置解析 来源:www.18183.com作者:皮卡时间:2015-12-30 华为荣耀7x配置怎么样?华为在ces2016展会上发布了荣耀7x,是不是对该机很好奇 ...

  2. 搭建nginx服务、nginx的升级安装、Nginx配置文件的解析、web页面用户认证

    一,Nginx安装 1.安装nginx #  yum -y install gcc pcre-devel openssl-devel                              //安装 ...

  3. nginx服务(六)_常用模块的配置使用

    访问控制模块 日志模块 压缩模块 ssl模块 升级opensll版本 访问控制模块 ngx_http_access_module模块:实现基于ip的四层访问控制功能 1.allow address | ...

  4. nginx从0到1之参数配置

    为什么80%的码农都做不了架构师?>>>    目标 希望本章讲解,大家可以灵活配置nginx参数,配出最优的nginx服务器. 1,下面为一个nginx配置文件的框架,注释的意思是 ...

  5. 启动nginx服务提示 nginx: [emerg] still could not

    /usr/sbin/lsof -i :80 转载于:https://www.cnblogs.com/cxlings/p/3768643.html

  6. 架构系列三:使用Keepalived+Nginx+tomcat实现集群部署

    架构系列三:使用Keepalived+Nginx+tomcat实现集群部署 介绍了通过Nginx配置Tomct集群,当其中一个Tomcat服务停止后,Nginx可自动识别并选择另一个服务器响应用户请求 ...

  7. 综合架构web服务之nginx详解

    文章目录 nginx 服务配置详细介绍 关于作者 前言 一.nginx web 入门简介 1.1 什么是nginx 1.2 常见的网站服务 1.3 nginx 网站服务特点 1.4 网站页面访问原理 ...

  8. Nginx服务基础:配置文件、访问状态统计、虚拟主机

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.编译安装Nginx服务 1.关闭防火墙,配置域名 2.安装nginx软件包及依赖包 3.编译安装Nginx 4.检 ...

  9. 初识 NGINX 服务网格

    https://mp.weixin.qq.com/s/uyMmVum5midT8uhC0HDJPw 初识 NGINX 服务网格 NGINX开源社区 今天 以下文章来源于Cloud Native Com ...

最新文章

  1. jQuery的选择器中的通配符使用介绍
  2. spring+springmvc+springboot 常用注解
  3. python中sample是什么意思_基于Python中random.sample()的替代方案
  4. docker+kibana+filebeat的安装
  5. java 重写session_使用Shiro重写Session 自定义SESSION
  6. 「旁门右道」CURL持久连接技巧
  7. python fetchall()转化为数据框_python 操作mysql数据中fetchone()和fetchall()方式
  8. MyCat2测试实战 -- 王者归来的故事
  9. Win10系统U盘启动盘制作详解
  10. Linux 打包压缩(tar、gzip、bzip、xz)备份(备份dump genisoimage 还原restore)
  11. android 集成 firebase 推送
  12. 重磅精品课程总有一门是你想要找的
  13. unity 打包APK 应用未安装
  14. H3C系列交换机系统版本升级及导入配置
  15. 一、Composer下载安装
  16. SQL server数据库五大实验
  17. 关于接入达达开发者文档的一些问题
  18. 第13条 类与接口——使类和成员的可访问性最小化
  19. linux服务器挂硬盘无法启动不了怎么办,Linux硬盘问题的八种解决技巧
  20. 计算机英语MDD英文全称,欧盟医疗器械指令 mdd 93-42-eec(中英文).pdf

热门文章

  1. 4.ADS操作入门_Circuit Envelope Simulation with Modulated Sources
  2. MYSQL笔试题(考试题)附带答案
  3. 程序自动修复相关工作总结
  4. 宇宙起源,量点说系列-2宇宙模型
  5. Python模块字典
  6. python学习之打印机
  7. 不要小看 WebSocket!长连接、有状态、双向、全双工都是王炸技能
  8. STEP 7 Micro/WIN V4.0 SP9 for s7-200
  9. 这个开源项目绝绝子,一键生成好玩的矢量风格头像!
  10. 1134: 字符串转换 C语言