nginx端口代理

2021/11/25 7:14:11

本文主要是介绍nginx端口代理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、安装Nginx

  1. 依赖(nginx 中:gzip模块需要 zlib 库,rewrite模块需要 pcre 库,ssl 功能需要openssl库) 编译需要 yum install gcc gcc-c++
  2. 安装依赖包
    安装PCRE库
    yum -y install pcre pcre-devel
    安装zlib库
    yum -y install zlib zlib-devel
    安装ssl
    yum -y install openssl openssl-devel
  3. 安装nginx (prefix为安装位置,根据实际情况)
    cd ~
    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    $ tar -zxvf nginx-1.8.0.tar.gz
    $ cd nginx-1.18.0
    $ ./configure --prefix=/home/nginx --with-http_ssl_module --with-stream
    $ make
    $ make install
  4. 设置nginx为系统服务
    vim /lib/systemd/system/nginx.service
    文件内容为:
    [Unit]
    Description=nginx
    After=network.target
    [Service]
    Type=forking
    ExecStart=/home/nginx/sbin/nginx
    ExecReload=/home/nginx/sbin/nginx -s reload
    ExecStop=/home/nginx/sbin/nginx -s stop
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
  5. 设置服务
    设置nginx开机自启动:
    systemctl enable nginx.service
    开启nginx服务:
    systemctl start nginx.service
    查看nginx是否启动成功:
    ps aux | grep nginx

二、配置负载均衡

  1. cd到nginx安装目录下的conf下
    vim nginx.conf
  2. 配置负载均衡
    mv nginx.conf nginx.conf.bak
    vim nginx.conf --参考配置如下
worker_processes 8
events {
    worker_connections  1024;
}
#http节点下创建
http{
#最大通过文件100M
client_max_body_size 100m;

server {
#监听端口
   listen 1234;
   location ^~ /{
     proxy_pass http://one;
     }
   error_page   500 502 503 504  /50x.html;
     location = /50x.html {
       root   html;
       }
}
upstream one {
   ip_hash;
   server 192.168.10.10:1232;
   server 192.168.10.11:1233;
}
server {
#第二个监听端口
   listen 1456;
   location ^~ /{
     proxy_pass http://other;
     }
   error_page   500 502 503 504  /50x.html;
     location = /50x.html {
       root   html;
       }
}
upstream other {
   ip_hash;
   server 192.168.10.12:1454;
   server 192.168.10.13:1455;
}
}

配置完重启即可
systemctl restart nginx.service

三、关于轮询策略
1.weight轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。
2.ip_hash:每个请求按照发起客户端的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。
3.fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。但是需要注意的是nginx默认不支持fair算法,如果要使用这种调度算法,请安装upstream_fair模块
4.url_hash:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意nginx默认不支持这种调度算法,要使用的话需要安装nginx的hash软件包



这篇关于nginx端口代理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程