在两台机器上实现负载均衡及热部署,使用过程中,最大的坑是对依赖包的引入,nginx类似于python,需要各种各样的包,否则在配置nginx.conf文件时会报错。再者nginx版本更新很快,所以有问题尽快百度,别瞎捉摸
先在1.1.1.1服务器上为例安装nginx

  1. 使用非root用户安装,比如 guest
  2. 安装目录暂时设定为:/home/guest/nginxServer
  3. 使用guest用户登录
  4. cd /home/guest
  5. mkdir -p nginxServer/tar
  6. mkdir -p nginxServer/tool
  7. 需要的依赖包:

mogno-c-driver-0.3.1.tar.gznginx-1.9.3.tar.gznginx-gridfs-0.8.tar.gzopenssl-1.0.1e.tar.gzzlib-1.2.8.tar.gz

这些依赖包请自行到网上下载。至于版本本人只知道nginx1.9以上能够支持socket通讯,1.8不行,其他的还不知道有什么影响。此外nginx1.9还不支持socket服务打印日志,要nginx14才行。还有,因为我需要使用mongodb数据库,所以需要引入mongo的依赖。

把这些依赖包放到/home/nginx/nginxServer/tar目录下。


  1. cd /home/nginx/nginxServer/tar
    解压tar包:

tar -xxvf    mogno-c-driver-0.3.1.tar.gz
tar -xxvf   nginx-1.9.3.tar.gz
tar -xxvf   nginx-gridfs-0.8.tar.gz
tar -xxvf   openssl-1.0.1e.tar.gz
tar -xxvf   zlib-1.2.8.tar.gz

  1. 把解压后的mongo-driver中的src目录cp到nginx-gridfs目录中的mongo-c-driver目录
  2. 安装nginx 注意:–前需要空格

cd /home/guest/nginxServer/tar/nginx-1.9.3./configure --prefix=/home/guest/nginxServer/tool --with-pcre=/home/guest/nginxServer/tar/pcre-8.3.6 --with-openssl=/home/guest/nginxServer/tar/openssl-1.0.1e --with-zlib=/home/guest/nginxServer/tar/zlib-1.2.8 --with-http_stub_status_module --add-module=/home/guest/nginxServer/tar/nginx-gridfs-0.8 --with-stream

可以看出上面加入了很多模块,有‘=‘的是需要外面引入的依赖,不带的是此nginx版本自带的,但也要声明引入。
11. 10执行完后,执行


 make & make install

如果没有报太多错,并且,在/home/guest/nginxServer/tool 目录下有四个目录 conf html logs sbin 说明安装成功
如果出现权限问题,在开通对应目录的权限即可。

  1. 修改启动端口,启动nginx服务
    检查nginx是否能启动成功,首先修改监听端口:

vim /home/guest/nginxServer/tool/conf/nginx.conf

这里我使用系统目前没有使用到的端口2555为例,当然了nginx有默认的端口,好像是2333,为防止已经被使用或之前已经安装了nginx,所以我们就改一个吧!修改位置如下:


server{listen    2555;server_name    localhost;....

保存后,启动nginx,命令如下:


#启动前检查配置是否正确
/home/guest/nginxServer/tool/sbin/nginx -t
#启动nginx
/home/guest/nginxServer/tool/sbin/nginx
  1. 下面添加服务,修改nginx配置如下(这里介绍以访问socket服务):

#修改nginx.conf
vim /home/guest/nginxServer/tool/conf/nginx.conf
增加配置如下,可在任意行加入:
stream{upstream xxweb_app{server 1.1.1.1:8080 weight=1;server 1.1.1.2:8080 weight=1;}server{listen 2444;proxy_pass xxweb_app;#这个xxweb_app要与上面的upstream xxweb_app保持一致,类似于方法名调用。}
}

保存后,重启nginx


#启动前检查配置是否正确
/home/guest/nginxServer/tool/sbin/nginx -t
#启动nginx
/home/guest/nginxServer/tool/sbin/nginx -s reload

  1. 观察nginx日志。监控一段时间:

tail -f /home.guest/nginxServer/tool/logs/access.log

可以在浏览器上访问服务,至于服务的url,nginx只是改变了ip和端口,url上其他的参数还是跟你之前访问url的内容一样。我这里使用的是tomcat服务,访问webservices接口,所以是


http://1.1.1.1:2444/tomcat1/servicetest?wsdl

流量器上多点几次,可以在nginx日志上看到会访问我们设置两个服务器,实现了服务站均衡。
15. 如果要实现nginx容灾,可以在1.1.1.2上在安装一个nginx,那么重复上面的步骤,实现外部服务可以调用我们这两个nginx服务,如果其中一个台挂了,另外一个也可以正常使用。
16. 如果要不停服务的更新服务,可以修改服务权重,然后重启,nginx的重启是无间断的,步骤如下:


#修改nginx.conf
vim /home/guest/nginxServer/tool/conf/nginx.conf
增加配置如下,可在任意行加入:
stream{upstream xxweb_app{server 1.1.1.1:8080 down;#修改的内容,别把权重改为0,会报错的server 1.1.1.2:8080 weight=1;}server{listen 2444;proxy_pass xxweb_app;#这个xxweb_app要与上面的upstream xxweb_app保持一致,类似于方法名调用。}
}

保存后,重启nginx


#启动前检查配置是否正确
/home/guest/nginxServer/tool/sbin/nginx -t
#启动nginx
/home/guest/nginxServer/tool/sbin/nginx -s reload

到这里,服务的请求都走1.1.1.2:8080这个服务了,这时候我们就可以更新1.1.1.1的服务了,注意要观察1.1.1.1的服务等其彻底关闭后再更新,放置有请求还在处理。
17. 服务更新好后,在把1.1.1.1:8080的服务权重改回来,并把1.1.1.2:8080的权重设为down,然后再重启,再更新1.1.1.2的服务,这样就实现了无间断更新服务的目的。
18. 下面介绍下访问http服务的配置:


upstream xyweb_app{server 1.1.1.1:8080 weight=1;server 1.1.1.2:8080 weight=1;
}
server{listen   9000;server_name    hostname;#这个服务名是服务器的域名,要在hosts文件中配置charset   utf-8;access_log    logs/access.log main;location /{proxy_pass  http://xxweb_app;#与上面的xyweb_app保持一致}
}

  1. 最后介绍下,nginx的并发量配置
    也是在nginx.conf中配置,新启一行配置如下:

 #进程数 与机器核数对应,查看机器核数命令如下,这里是进程数 :cat /proc/cupinfo |grep "processor"|wc -lworker_processes 32;#单进程处理线程数 与命令 ulimit -n 的结果保持一致worker_rlimit_nofile 10240;

通常生成的机器配置很好的,可看出上面的处理线程数可达到1024032,打个半折有1024016个并发数,20万级别了,可处理的并发量还是很高的。

nginx 负载均衡安装及升级步骤相关推荐

  1. Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡

    一.什么是正向代理.什么是反向代理 1. 正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器 ...

  2. 全力升级篇-基于Mongodb与Nginx负载均衡打造共享单车项目实战 最新完整项目升级版

    全力升级篇-基于Mongodb与Nginx负载均衡打造共享单车项目实战 最新完整项目升级版 课程作为全新的升级项目课程,基于Nginx负载均衡,Flume与Kafka,Mongodb和Redis等技术 ...

  3. Docker集群环境下安装Fastdfs集群+Nginx负载均衡

    一.环境配置 现有两台服务器10.168.103.110(旧服务器)和10.168.103.111(新服务器),其中110服务器上有swarm集群,一个tracker和一个storage,现在要做Fa ...

  4. Nginx负载均衡的详细配置及使用案例

    Nginx负载均衡的详细配置及使用案例详解 感谢看过这一些列博文和评论的小伙伴, 我把自己所看到的学到的拿到这里来分享是想和大家一起学习进步, 想听听园友给出的意见, 也是对自己学习过程的一个总结.  ...

  5. Nginx——Nginx负载均衡

    目录 1.负载均衡概述 2.负载均衡的原理及处理流程 3.负载均衡的作用 4.负载均衡常用的处理方式 4.1.方式1:用户手动选择 4.2.方式2:DNS轮询方式 4.3.四/七层负载均衡 5.Ngi ...

  6. Nginx负载均衡+tomcat+session共享

    为什么80%的码农都做不了架构师?>>>    本文,是笔者工作之余写的,第一是把之前打系统框架的步骤记录下来.第二是将这个过程,谈不上经验,奉献给正在撘这种框架遇到各种bug,各种 ...

  7. 单一nginx负载均衡+LNMP分布式架构

    随着互联网的快速发展,我们的web站点访问量和数据流量的快速增长,对于我们服务器的处理能里的要求也越来越高,这样的情况下,单一的服务器根本无法承受,  这样的话我们丢弃掉原有的设备,做硬件升级,会造成 ...

  8. tomcat服务部署与nginx负载均衡

    中间件产品介绍 ​ 目前来说IBM的WebSphere. Oracle的Weblogic占据了市场上Java语言Web站点的部分份额.该两种软件由于无与伦比的性能及可靠性等优势被广泛应用于大型互联网公 ...

  9. 基于nginx负载均衡的慢性病专家系统

    摘要 随着互联网技术和国内医疗行业持续高速地发展,管理员为了能够更加方便地管理用户预约挂号和医生诊疗,慢性病专家系统被开发出来的目的是为了能够更加方便管理用户预约挂号和医生诊疗,一个良好的慢性病专家系 ...

最新文章

  1. 普渡大学计算机硕士申请条件,普渡大学计算机与信息技术理学硕士研究生申请要求及申请材料要求清单...
  2. Java序列化闲聊:序列化和Json
  3. Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)
  4. [转载] java实现四种常用排序算法
  5. 强的离谱!串烧70+个Transformer模型,涵盖CV、NLP、金融、隐私计算...
  6. 基于java-GUI高校科研成果管理系统
  7. springboot实现web文件上传,下载demo(附带demo链接)
  8. SAP成都研究院飞机哥:程序猿和飞机的不解之缘
  9. 字符图形7-星号菱形
  10. 数据结构---第四章:串
  11. 小学计算机应用计划,小学计算机教学计划
  12. P2P TELNET
  13. bios 刷 灵耀14_华硕p8z77vlx2主板
  14. 天载股票开户大宗商品价格上涨引关注
  15. 安霸linux开发板,安霸 ubuntu开发环境搭建
  16. 利用threejs实现3D全景图
  17. PyCharm里面的c、m、F、f、v、p分别代表什么含义?
  18. 解读5类成功短视频自媒体的运营套路
  19. STM32 GPIO口的配置和应用
  20. 【回归分析】MATLAB实现多元线性/非线性回归

热门文章

  1. excel小写转大写公式_Excel办公技巧:快速将单元格中小写字母全部转换为大写字母...
  2. 用WORD批量制作工作证件
  3. Ubuntu系统下MRIcroN、FSL6.0.5、Freesurfer7.1.1、ANTs、MRtrix3、AFNI的安装详解——核磁共振数据处理必备
  4. 数学牛人们的轶事[下]
  5. linux tar源码,linux之tar命令备份
  6. 深度学习计算模型中门函数的作用
  7. ubuntu20.04安装matlab2018b
  8. 利用Deskpool 搭建 桌面云教室
  9. 车载无线自组织网络的介质访问控制协议研究
  10. AI面临产业大考:落地虽难,但产业化路径已日渐清晰