• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
地岁寒
博客园    首页    新随笔    联系   管理    订阅  订阅
Nginx配置

一. Nginx用途简介

Nginx是一个功能强大的Web服务器加反向代理服务器,同时又是邮件服务器等。

在项目使用中,使用最多的三个核心功能是反向代理、负载均衡和静态服务器

二. 配置文件简介

mian                    #全局配置
worker_processes  1; #Ngix服务器并发处理服务的关键配置,worker_processes值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约。
events{        
        #nginx工作模式配置,evnets涉及的指标主要影响Nginx服务器与用户的网络连接,常用的设置包括是否开启多worker process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求等。
     workder_connections 1024 ; #每个worker process可以同时支持的最大连接数 。 } http { #http设置 server #服务器主机配置       ... location { #路由配置 } location path{ } location otherpath{ } } server{ location{ } } upstream{ #负载均衡配置 } }

main # 全局配置,对全局生效
├── events # 配置影响 Nginx 服务器或与用户的网络连接
├── http # 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置
│ ├── upstream # 配置后端服务器具体地址,负载均衡配置不可或缺的部分
│ ├── server # 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块
│ ├── server


proxy_pass http://tomcat : 表示将所有请求转发到tomcats服务器组中配置的某一台服务器上。

upstream模块:配置反向代理服务器组,Nginx会根据配置,将请求分发给组里的某一台服务器。tomcats是服务器组的名称。

max_failes默认为1,某台server允许请求失败的次数,超过最大次数后,在fail_timeout时间内,新的请求将不会分配给这台机器。如果设置为0,Nginx会将这台Server置为永久无效状态。

fail_timout默认为10秒,某台Server达到max_fails次失败请求后,在fail_timeout期间内,nginx会认为这台Server暂时不可用,不会将请求分配给它。

max._conn:限制分配给某台Server处理的最大连接数,超过这个数量,将不会分配新的连接给它。

resolve将server指令配置的域名,指定域名解析服务器。需要在http模块下配置resolve指令,指定域名解析服务。

Nginx负载均衡实现方式“

1). weight轮询:接收到垢请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,nginx会自动将该服务器剔出队列,请求受理情况不会受到任何影响。这种方式下,可以给不同的后端服务器设置一个权重值。

2). ip hash :每个请求按照发起客户端 的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总分访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下seesion共享的问题。

3). fair : 智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少; 结合了前两者的优点的一种调度算法。但是需要注意的是nginx默认不支持fair算法,如果要使用这种调度算法,请安装upstream_fair模块。

4). url_hash : 按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意nginx默认不支持这种调度算法,要使用的话需要安装nginx的has软件包。

 

2. Nginx配置反向代理,负载均衡其实也是反向代理

upstream tomcats {
    server 127.0.0.1:9001;
    server 127.0.0.1:9002;
}

server {
    listen 80;
    server_name  www.lianggzone.com;
    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://tomcats;
    }
}

 

Nginx动静分离配置:

    Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面。动静分离从目前实现角度来讲分为两种 :

     1) 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的文案;

     2) 另一种方法就是动态跟静态文件混合在一起发布,通过nginx来分开。

Nginx作为动静分离服务器的相关配置:

server {
      listen 80;
      server_name 10.110.10.122;

      location / {
         root html;
         proxy_pass http://myserver;
         index index.html indexl.htm;    
    }                  
      location /www/ {
         root /data/;  
    } 
      location /image/ {
         root /data/;
         autoindex on;  
    }
}

 


│ │ ├── location # server 块可以包含多个 location 块,location 指令用于匹配 uri
│ │ ├── location
│ │ └── ...
│ └── ...
└── ...

原文作者:SHERlocked_93
原文链接:https://www.nginx.org.cn/article/detail/545
转载来源:NGINX开源社区
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

配置文件主要由6部分组成:

1. main : 用于进行nginx全局信息的配置

2. events : 用于nginx工作模式的配置

3. http : 用于进行http协议信息的一些配置

4. server : 用于进行服务器访问信息的配置

5. location : 用于进行访问路由的配置

6. upstream : 用于进行负载均衡的配置

三. 各功能的配置方法:

1. 负载均衡配置方法:

http{
  resoler 10.0.0.1; upstream tomcats{ server 10.110.110.10:8080 weight=2 max_fails=3 fail_timeout=15; #2/6次 server 10.110.110.11:8080 weight=3 max_conns=1000; #3/6次 server 10.110.110.12:8080 weight=1; #1/6次
   server example.com resolve; } server { listen 80; location /{ proxy_pass http://tomcats; } } }

 

posted on 2022-09-20 12:17  地岁寒  阅读(114)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3