tnblog
首页
视频
资源
登录

nginx四层负载均衡

7749人阅读 2020/2/2 0:34 总访问:3470471 评论:0 收藏:0 手机
分类: linux

实验环境


CentOS-7-x86_64-DVD-1810.iso

本机IP:10.4.7.11

安装Nginx


执行安装命令

  1. yum install nginx -y


配置Nginx


通过 Vim 打开 Nginx.conf 文件

  1. vim /etc/nginx/nginx.conf

举例在末尾添加如下配置

  1. stream {
  2. upstream kube-apiserver {
  3. server 10.4.7.21:6443 max_fails=3 fail_timeout=30s;
  4. server 10.4.7.22:6443 max_fails=3 fail_timeout=30s;
  5. }
  6. server {
  7. listen 7443;
  8. proxy_connect_timeout 2s;
  9. proxy_timeout 900s;
  10. proxy_pass kube-apiserver;
  11. }
  12. }


方法描述
upstream appname需要转发的应用名称
upstream --》server 需要转发的ip以及端口 
upstream --》server --》max_fails从新连接的最大次数
upstream --》server --》max_timeout从新连接的最长时间
server本机设置
server --》listen本机监听的端口
server --》proxy_connect_timeout一台上游服务器如果拒绝TCP连接超过proxy_connect_timeout配置的时间,将会被认为已经失效。在这种情况下,Nginx立刻尝试连接upstream组内的另一台正常的服务器。连接失败信息将会记录到Nginx的错误日志中。
server --》proxy_timeout超时时常
server --》proxy_pass需要代理转发的应用与端口


测试:大家只需要在 Xshell 远程访问本机的 IP地址以及7443端口 即可跳转到 末尾IP为21 和 末尾IP为22 其中一个当中

检查Nginx配置


 检查配置

  1. [root@hdss7-11 etcd]# nginx -t
  2. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  3. nginx: configuration file /etc/nginx/nginx.conf test is successful

启动nginx

  1. systemctl start nginx

开机自启动nginx

  1. systemctl enable nginx

然后就搭建好了


Nginx多点配置,本机宕机怎么办?


从节点IP:10.4.7.12


需要建立 VIPS 来进行检查

安装 keepalived

  1. yum install keepalived -y

配置 keepalived

  1. vim /etc/keepalived/check_port.sh

配置如下

  1. #!/bin/bash
  2. CHK_PORT=$1
  3. if [ -n "$CHK_PORT" ];then
  4.           PORT_PROCESS=`ss -lnt|grep $CHK_PORT|wc -l`
  5.           if [ $PORT_PROCESS -eq 0 ];then
  6.               echo "Port $CHK_PORT Is Not Used ,End."
  7.           fi
  8. else
  9.           echo "Check Port Cant Be Empty!"
  10. fi

增加执行权限

  1. chmod +x /etc/keepalived/check_port.sh

主节点修改文件 /etc/keepalived/keepalived.conf 

  1. ! Configuration File for keepalived
  2. global_defs {
  3.     router_id 10.4.7.11
  4. }
  5. vrrp_script chk_nginx {
  6.   script "/etc/keepalived/check_port.sh 7443"
  7.   interval 2
  8.   weight -20
  9. }
  10. vrrp_instance VI_1 {
  11.     state MASTER
  12.     interface ens33
  13.     virtual_router_id 251
  14.     priority 100
  15.     advert_int 1
  16.     mcast_src_ip 10.4.7.11
  17.     nopreempt
  18.     authentication {
  19.         auth_type PASS
  20.         auth_pass 11111111
  21.     }
  22.     track_script {
  23.       chk_nginx
  24.     }
  25.     virtual_ipaddress {
  26.         10.4.7.10
  27.     }
  28. }


从节点修改文件 /etc/keepalived/keepalived.conf 

  1. ! Configuration File for keepalived
  2. global_defs {
  3.     router_id 10.4.7.12
  4. }
  5. vrrp_script chk_nginx {
  6.   script "/etc/keepalived/check_port.sh 7443"
  7.   interval 2
  8.   weight -20
  9. }
  10. vrrp_instance VI_1 {
  11.     state BACKUP
  12.     interface ens33
  13.     virtual_router_id 251
  14.     priority 90
  15.     advert_int 1
  16.     mcast_src_ip 10.4.7.12
  17.     authentication {
  18.         auth_type PASS
  19.         auth_pass 11111111
  20.     }
  21.     track_script {
  22.       chk_nginx
  23.     }
  24.     virtual_ipaddress {
  25.         10.4.7.10
  26.     }
  27. }


启动 keepalived

  1. systemctl start keepalived

开机自启动 keepalived

  1. systemctl enable keepalived


解决



相关资料参考

https://www.cnblogs.com/gongjingyun123--/p/11424424.html

https://www.cnblogs.com/yanjieli/p/10682064.html


  外围话题

tnblog

 Bind9 可以搭建本地网关 (已亲测)

   harbor 私有docker云管理 很方便的 (已亲测)




欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

nginx常用命令。nginx启动命令。nginx重启命令。nginx关闭命令。nginx测试配置文件是否正确。nginx nginx.pid文件丢失报错

启动命令:start nginx 关闭命令:nginx -s stop nginx -s quit nginx -s stop与nginx -s quit区别 Quit is a graceful shu...

nginx配置负载均衡注意事项

一.如果location下面的proxy_pass配置有端口号nginx就会直接反向代理到这个地址这样你配置的upstream就没有用了,即使名字和...

nginx反向代理负载均衡

nginx介绍nginx是一个高效的反向代理工具,可以很方便的实现服务的负载均衡反向代理方式实际上就是一台负责转发的代理服务器...

使用nginx在同一台服务器上配置多个二级域名

一般二级域名都是解析到不同的服务器上,但是很多时候没有那么土豪可以用那么多服务器哇。当然土豪完全可以1个二级域名一台...

使用nginx在同一台服务器上配置多个二级域名2

在第一篇中介绍了一种方法:http://www.tnblog.net/aojiancc2/article/details/2430其实还可以使用第二种方法,也就是配置...

nginx处理静态资源

如果我们使用了nginx反向代理后,直接去项目中请求我们的静态资源会比较慢,当然我们有条件使用cdn更好,没有不使用cdn,也...

nginx配置注意事项

一.要注意后面要加一个分号:不然就会报这个错:

使用nginx后net core无法获取ip问题

使用了nginx后net core获取ip地址居然全部是本地的地址,不是外网的地址这是因为nginx转发了一次后,我们直接使用常规获取i...

.net Core3.0在Ubuntu 16.04上面的部署(Supervisor+nginx)(扩展docker)

前 言Linux 随着Linux越来越流行,本人一个.net程序员也多次研究linux与.net的相关产品,以及中间件的使用方式。So今天给...

nginx https的证书配置与301跳转

在 etc/nginx/ 目录下新建 ssl 文件夹来存放证书。把 crt 证书文件和 key 私钥文件上传到这里。然后就可以配置 Nginx 配置...

windows nginx配置https证书

windows nginx配置https证书还是比较简单的我这里申请的证书是阿里云的,去下载nginx版本的解压后有两个文件一个.key,一个....

nginx bind() to 0.0.0.0:443 failed

就是因为443端口被占用了而已!,找到占用的端口停掉即可。可以参考:http://www.tnblog.net/aojiancc/article/details/3319

nginx重启无效

有可能是因为nginx打开了多个,在应用程序中看看

nginx 静态资源gzip压缩与缓存,解决静态资源加载慢的问题

在http模块中开启gzip压缩# 开启gzip gzip on; # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_lengt...

nginx限制文件上传大小

有些时候用了nginx,除了项目本身要配置上传大小限制,nginx也要限制 直接贴代码吧 location / { proxy_set_header X...
这一世以无限游戏为使命!
排名
2
文章
635
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术