最近项目不忙就考虑把现有的单点系统应用增加成多节点应用,就考虑到采用nginx做负载均衡,记录下来配置的过程

       nginx安装
      1  windows下安装nginx(此处只写windows下,linux下略网上很多就不再写了)
     下载nginx http://nginx.org/en/download.html
      解压完成:
      nginx安装及负载均衡配置

     2 启动关闭常用命令

         进入命令行:cmd 进入到nginx的安装目录

         nginx安装及负载均衡配置

          

               start nginx : 启动nginx
                nginx -s reload  :修改配置后重新加载生效
                nginx -s reopen  :重新打开日志文件
                nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

                关闭nginx:
                nginx -s stop  :快速停止nginx
                nginx -s quit  :完整有序的停止nginx

 

二: nginx负载均衡配置
           1  准备两个tomcat,分别端口设置为8081和8082(具体端口设置略过)
           2  到nginx的安装目录,修改nginx.conf文件做负载配置(配置如下两个地方就可以)

            nginx安装及负载均衡配置

             至此 我们nginx负载就配置完成了,分别启动两个tomcat ,启动nginx,访问就可以了

  三 负载均衡后遇到的问题
           1 文件上传下载问题
              假如我上传图片时候,正好调用的是81端口的项目,那么文件就上传到81服务器上去了,在我访问的时候,分配到82                  服务器,这样就导致文件无法展示,针对此问题有几种处理方案:
              A 做文件服务器,所有的应用公用文件服务器,上传下载都指向该文件服务器
              B 通过nginx配置 使得上传下载都指向同一台服务器上去(这种方式最简单,但是这种方式不能实现完全的负载)
              这里介绍B方案的配置如下: 

                nginx安装及负载均衡配置

              2 Session问题
                 当负载后 我们的应用部署在不同的机器上,每一次请求随机分配到不同的服务器,这样导致访问81机器后,下一访问                   会分配到82机器上,这样与81建立的session在82机器上就不能使用了
                 解决方案:
                  A 使用readis 将session 缓存到独立的readis服务器
                  B session保存到数据库中
                  C 采用ngin的配置,使用ip_hash配置,保证同一个ip请求落在同一台服务器上
                  C方案的nginx配置如下:

                    nginx安装及负载均衡配置

相关文章:

  • 2021-09-01
  • 2021-11-21
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2022-12-23
  • 2022-02-04
猜你喜欢
  • 2021-06-01
  • 2021-06-14
  • 2021-12-08
  • 2021-12-11
相关资源
相似解决方案