nginx

作者: wsj1211 | 来源:发表于2022-03-08 20:36 被阅读0次

    nginx 简介

    1. 准备工作
      对外开放端口
      firewall-cmd --add-port=8080/tcp --permanent
      firewall-cmd --reload
      查看已经开放的端口号
      firewall-cmd --list-all
    2. 配置文件:
      三部分组成
    • 全局块:
      从开始到events块之间的内容,主要回设置一些影响nginx服务整体运行的配置指令
      eg: worker processes 1; // 值越大 可以支持的并发处理量也越多
    • events块:
      设计的指令主要影响Nginx服务器与用户的网络连接
      eg:worker connections 1024; 支持的最大连接数
    • http块:
      Nginx 服务器配置中最频繁的部分
      http 块也包含全局块,server块
    1. 案例
    • 浏览器访问www.123.com 实际访问服务器的8080端口
      • 修改host文件 添加一行 xxx.xxx.xxx.xxx www.123.com
      • server 修改为
        ~~~
        server {
        listen 80;
        server_name xxx.xxx.xxx.xxx;
        location / {

    反向代理

    root  html;
    proxy_pass http://xxx.xxx.xxx:8080;
    index index.html index.htm;
    

    }
    }
    ~~~

    • 浏览器访问
      http://192.168.1.1:9091/edu/a.html 实际访问的是192.168.1.1的8080服务
      http://192.168.1.1:9091/wsj/a.html实际访问的是192.168.1.1的8081服务
      修改server
      ~~~
      server {
      listen 9091;
      server_name 192.168.1.1;
      location ~/edu/ {
      proxy_pass http://127.0.0.1:8080;
      }
      location ~/wsj/ {
      proxy_pass http://127.0.0.1:8081;
      }
      }
      ~~~

    负载均衡

    修改配置文件

    #在http块添加upstream server中location的proxy_pass 配成upstream的名字
    http {
       upstream  dalaoyang-server {
           server    localhost:10001;
           server    localhost:10002;
       }
    
       server {
           listen       10000;
           server_name  localhost;
    
           location / {
            proxy_pass http://dalaoyang-server;
            proxy_redirect default;
          }
    
        }
    
    }
    

    负载均衡的方式

    • 默认轮询
      所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除
    • 权重
      指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍。
    upstream  dalaoyang-server {
           server    localhost:10001 weight=1;
           server    localhost:10002 weight=2;
    }
    
    • ip_hash
      每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,适合于登陆? 如下配置(ip_hash也可以和weight配合使用)。
    upstream  dalaoyang-server {
           ip_hash; 
           server    localhost:10001 weight=1;
           server    localhost:10002 weight=2;
    }
    
    • fair
      按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    upstream  dalaoyang-server {
           server    localhost:10001;
           server    localhost:10002;
           fair;  
    }
    

    动静分离

    就是配置为访问服务器的一个文件夹 即可访问文件夹下的图片和html文件等

    高可用模式

    两台服务器+ keepalived(配置相同的虚拟ip)
    两台服务器都启动nginx 并配置一样的环境(nginx+ keepalived)
    keepalived分为master和backup 一台服务器宕机 自动转为获取另外一台服务器

    • keepalived 配置
      分三块
      全局块

    nginx内部模式

    • 一个master + 多个worker
      好处 不需要加锁 每个进程都是独立的
    • 设置worker数量
      和服务器的cpu数量一致最好
      worker processon 4;
    • 发送请求 占用了worker的几个连接数
      2个或者4
    • 假如 一个worker的最大连接数是1024,支持的最大并发请求是多少
      // 正常 worker_connects*worker_processes/2
      // 反向代理worker_connects*worker_processes/4

    相关文章

      网友评论

          本文标题:nginx

          本文链接:https://www.haomeiwen.com/subject/peeilrtx.html