简单聊聊不可或缺的Nginx反向代理服务器--实现负载均衡【上篇】

       今天又是新的一周,我养足了精神去对待新一周的工作,但是今天到公司发现还是有一点空闲时间的,所以就想与之前接触过的Nginx再交往得更深一点儿。

什么是Nginx:

       Nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。官方测试nginx能够支撑5万并发链接,但是实际生产环境能到2-3万并发连接数(只是听说),并且cpu、内存等资源消耗缺非常低,运行非常稳定。

Nginx在实际生产中的应用场景:

       上面已经说了,Nginx是一款高性能的http服务器,所以它可以提供单独的http服务,经常在开发中用作静态网页服务器来使用;还有一点就是它的核心应用,即反向代理服务器负载均衡:其实反向代理这一点并不难理解,就是通过配置将服务器的IP和指定域名进行映射即可。至于负载均衡,就是当某个网站的访问量达到一定程度后,并且单台服务器不能提供服务的情况下,我们就需要借助软件技术能够让多台服务器轮流分担访问压力,目的是达到不会因为某台服务器负载高宕机而某台服务器闲置的这种不公平情况,经常我们会采取某种轮询机制来让它们正常工作。

什么是负载均衡(Load Balance):

       一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,但却无法在一秒钟内处理上百万个甚至更多的请求。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。

       负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求按照某种策略分配到服务器集合的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡解决了大量并发访问服务问题,其目的就是用最少的投资获得接近于大型主机的性能。

在Linux环境上安装Nginx:

第一步:安装GCC,因为Nginx是用C语言开发的,所以在安装的时候需要编译:

yum install –y gcc-c++

第二步:需要安装第三方软件:

  • 安装PCRE yum install –y pcrepcre-devel
  • 安装ZLIB yum install –y zlibzlib-devel
  • 安装OPENSSL yum install –y opensslopenssl-devel

第三步: 将Nginx源码包上传到linux系统(我这里使用的是nginx-1.8.0.tar.gz),并且解压缩:

tar -xf nginx-1.8.0.tar.gz

第四步:配置参数,进入nginx的解压目录下,执行以下命令:【注意,在配置命令中指定了安装Nginx的临时目录/var/temp/nginx,必须手动创建该结构的目录mkdir /var/temp/nginx -p】

./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi

第五步:编译Nginx源码包:

make

第六步:安装Nginx:

make install

第七步:查看Nginx安装目录,如果存在conf、html、sbin三个目录,则基本安装成功:

第八步:启动Nginx、停止Nginx、重启Nginx:

启动:进入/usr/local/nginx/sbin目录下执行命令 ./ngnix

重启:./nginx–s reload

快速停止:./nginx -s stop

完整停止:./nginx -s quit

第九步:打开浏览器输入安装了Nginx的服务器IP地址即可出现欢迎页面,则安装成功。

Nginx实现负载均衡:

需求:当我们在浏览器访问某一地址时,后台由多个不同端口的服务器来轮询响应?

实现步骤:

第一步、准备2台或2台以上的Tomcat服务器,并且保证它们的端口号不发生冲突并能正常访问,我这里准备了2台并且在每个Tomcat中扔进一个运行正常的web项目。

第二步、配置Nginx的负载均衡,我这里采用轮询+权重的机制来实现的,说明一点:正常情况下负载均衡的配置是通过域名映射来访问的,我这儿没有映射域名,如果各位想通过映射域名则配置域名然后去修改hosts文件即可。

       切换到Nginx安装目录下,进入conf目录,编辑nginx.conf配置文件(如果想了解更详细的配置说明,推荐http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html)

第三步、通过配置文件中的配置,访问资源,最后发现俩个Tomcat服务器上的web应用轮询响应(这里本应该给各位上传一段测试后的视频的,但是咨询了一下午没能做到,还望各位将就一下吧)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏搜云库

Ubuntu 17.04 x64 安装 Docker CE 初窥 Dockerfile 部署 Nginx

Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署、测...

27960

从客户端Web应用程序访问Bluemix服务

Bluemix是IBM云平台可以利用100多种服务构建和托管的应用程序,例如数据库和认知服务。这些服务提供需要凭据的API。Bluemix上托管的应用程序,作为...

24160
来自专栏电光石火

配置nginx.conf实现负载均衡

编辑/usr/local/nginx/conf/nginx.conf

23150
来自专栏电光石火

如何让nginx显示文件夹目录

vi /etc/nginx/conf.d/default.conf

227100
来自专栏电光石火

Nginx多站点设置及负载均衡

apache端口88 tomcat端口8080

35770
来自专栏mini188

Apache Ignite之集群应用测试

集群发现机制 在Ignite中的集群号称是无中心的,而且支持命令行启动和嵌入应用启动,所以按理说很简单。而且集群有自动发现机制感觉对于懒人开发来说太好了,抱着试...

64760
来自专栏运维前线

Ngxtop-Nginx日志实时分析利器

ngxtop实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top,所以这个软件起名ngxtop。有了ngxtop,你可以实时了解到当前...

489100
来自专栏电光石火

tengine+tomcat+php安装

在安装tengine之前,确认centos环境中有无gcc、pcre、openssl,如果没有按以下命令进行安装

28370
来自专栏腾讯架构师的专栏

让互联网更快的协议,QUIC 在腾讯的实践及性能优化

本文将主要介绍 QUIC 协议在腾讯内部及腾讯云上的实践和性能优化。

1.3K80
来自专栏编程

前端异常监控系统

来源:子慕大诗人 http://www.cnblogs.com/1wen/p/7942608.html 导火索 有一天一个测试同事的一个移动端页面白屏了,看样子...

50970

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励