Nginx配置

下载安装nginx

这里去参考https://www.runoob.com/linux/nginx-install-setup.html;

配置一个简单的反向代理

反向代理其实有点像我们java 中的代理,为啥这么讲反向代理其实就是我们访问代理的地址,然后又代理地址发送给指定的地址;如下
在这里插入图片描述
配置如下修改nginx.conf这个文件

#user  nobody;
worker_processes  1; #nginx多少个工作组
events {
    worker_connections  1024;#nginx的链接数,通过这个可以就算个理论并发数
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;



        location / {
            root   html;
            index  index.html index.htm;
        }

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

      
    }

}

上面没有修改的原本的配置文件我们只需要修改 servser_name 的localhost 一般会修改成域名地址,并在location 中添加proxy_pass http://127.0.0.1:8080 映射本地的端口 这样当你访问你的你server_name 配置的地址的时候就会代理访问到tomcat 的页面

配置一个负载均衡

由于我们的开发中不可能存在一个tomcat,当有多个tomcat 时候需要在暴露的一个端口下代理多个tomcat 这时候的图解如下:
在这里插入图片描述
还是修改nginx.conf 配置 这里还是修改只是添加了upstream 模块 并且 location /这个模块的 proxy_pass 的值为upstream 名

http {

    include       mime.types;
    default_type  application/octet-stream;
    
	upstream tomcats{
	server 192.168.0.100:8080;
	server 192.168.0.100:8081;
	}
 
    sendfile        on;
  
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  192.168.0.100;


        location / {
            root   html;
	    proxy_pass http://tomcats;
            index  index.html index.htm;
        }


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

    }


}

负载均衡也有几种配置默认的是轮询就是上面这种
第二种 权重配置

upstream tomcats{
server 192.168.0.100:8080 weight=1 # 请求次数1/3
server 192.168.0.100:8081 weight=2 # 请求次数 2/3
}

第三种 最少的连接数 当我们配置多个时候它会根据请求最少 的那个使用

upstream tomcats{
least_conn
server 192.168.0.100:8080  # 1
server 192.168.0.100:8081  # 2
}

假设链接1 被请求过三次链接2背请求了两个那么这次请求2
其他自己查一下都不难还有第三方的负载策略,但是我们钱接触的项目最多的就是上面三种还有一种backup 备份机

高可用的Nginx

上面使用了两个tomcat 通过nginx 代理多个tomcat,当一个tomcat 挂掉也没有关系,那么当一个nginx 挂了那么就出问题,为了解决这种问题所以出现了nginx 集群;

在这里插入图片描述
上面的流程图就是使用第三方keepalived 配置虚拟Ip并绑定了两个服务器,当nginx1宕机了2生效
下载keepalived 自行下载直接上配置
配置Master

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id TEWHJ
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" ##执行脚本位置

    interval 2 ##检测时间间隔

    weight -20 ## 如果条件成立则权重减20(-20)

}

vrrp_instance VI_1 {
    state MASTER  # 指定主的    备份服务器 BACKUP
    interface enp0s3 # 指定网卡
    virtual_router_id 51
    mcast_src_ip 192.168.0.100  ## 本机ip地址
    priority 90 # 优先级
    advert_int 1 ## 组播信息发送间隔,俩个节点必须配置一致,默认1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16 # 指定的虚拟Ip
    }
}

配置backup

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id TEWHJ
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" ##执行脚本位置

    interval 2 ##检测时间间隔

    weight -20 ## 如果条件成立则权重减20(-20)

}

vrrp_instance VI_1 {
    state BACKUP# 指定主的    备份服务器 BACKUP
    interface enp0s3 # 指定网卡
    virtual_router_id 52
    mcast_src_ip 192.168.0.101  ## 本机ip地址
    priority 90 # 优先级
    advert_int 1 ## 组播信息发送间隔,俩个节点必须配置一致,默认1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16 # 指定的虚拟Ip
    }
}

两个服务配置好启动服务器服务就可以了这样就完成了一个简答的nginx 高可用;
可是随着并发的极具升高这种模式的弊端也就出现 因为主从关系他就会出现当主nginx 没有挂掉那么备份服务永远也不会被请求这样就会出现资源浪费这时候又有一种新的方式来解决这种问题就是给nginx1 服务,配置两个虚拟ip,在第一个虚拟IP中为主,第二个中为备份,同样的nginx2服务中第一个IP为备份第二个为主,然后通过域名DNS的配置轮询来实现nginx 轮询,这样及解决了资源浪费,也解决了nginx 的并发瓶颈,但是这种方式也是有问题和瓶颈的。每一种架构方式都有它的弊端,我们只有在不断解决bug 中进步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值