文章结构
1.介绍Nginx服务器
2.Nginx服务器安装
3.Nginx服务器什么是反向代理
4.Nginx服务器配置负载均衡
5.总结
1.介绍Nginx服务器
Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx也是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。(官网地址)
1.2 应用场所
1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
2.Nginx服务器安装
-
1.安装准备
-
1.1 下载nginx ,官方网站:http://nginx.org/
(笔者这里用的是Nginx服务器版本是1.8,生产环境是、Linux6.5 ~ 32位)
2. 环境需求如下:
-
需要安装gcc的环境。yum install gcc-c++
第三方的开发包。
PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-deve
3.开始安装
1.我们先将我我们下载好的Nginx服务器上传到我们的Linux服务器上,上传工具这里笔者
使用的FileZilla FTP工具上传的,读者可以根据自己需要使用自己的上传工具,上传结果图如下:
2.我们使用命令解压安装Nginx服务器,命令如下:
解压命令: tar zxvf nginx-1.8.0.tar.gz
解压成功如下图:
3.当解压成功,我们开始安装Nginx服务器
- 3.1 进入nginx-1.8.0目录, 使用configure命令创建一makeFile文件
./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之前,上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
创建命令: mkdir /var/temp/nginx/client -p
- 3.2 创建临时目录完成好, 使用 make命令 如下:
make
看到上面的结果表示已经初始化成功可以继续安装!
- 3.3 使用 make install 命令 安装
make install
到这里说明已经安装成功,距离成功还剩下最后一步,这里提供两种思路,1.是关闭防火墙,2.配置防火墙,配置开放的端口,笔者这里提供一篇关于安装Linux系统上安装tomcat服务器配置防火墙的文章,可以参考配置,参考配置防火墙,不过精力有限,这里笔者直接把防火墙关了吧,省事!关闭防火墙的命令如下:
service iptables stop
关闭成功!,到这里不出什么问题我们已经完全配置好了Nginx服务器!我们来访问看看吧!
访问Nginx服务器
- 进入 /usr/local/nginx/sbin目录 使用如下命令开启:
./nginx
关闭Nginx服务器命令
重新加载Nginx服务器命令
启动成功!我们打开浏览器输入我们服务器ip地址,如:http://你服务器地址/
端口默认是80端口,所以直接输入ip即可
看到如下如,Nginx服务器安装配置成功,下面可以继续操作了!
3.Nginx服务器什么是反向代理
在探讨反向代理前我们先看一下正向代理的流程图,如下:
反向代理:
反向代理服务器决定哪台服务器提供服务。
返回代理服务器不提供服务器。也是请求的转发。
3.2.Nginx实现反向代理
两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容。
两个域名是 www.gitdms.com 和 www.sohu.com
nginx服务器使用虚拟机192.168.15.139
###配置本地host
第一步:安装两个tomcat,分别运行在8081和8082端口。
安装tomcat前先检查是否安装了jdk,如果没有刻意参照博主的文章双击进入—安装JDK
安装tomcat不会刻意参照博主的其他文章 双击进入—安装Tomcat教程
第二步:启动两个tomcat。
gitdms:
sohu:
第三步:反向代理服务器的配置
配置如下,这里笔者用editplus进行编辑:
修改配置如下:
upstream tomcat1 {
server 192.168.15.139:8081;
}
server {
listen 80;
server_name www.gitdms.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat1;
index index.html index.htm;
}
}
更多可以继续添加…
重新加载配置------执行命令:./nginx -s reload
www.sohu.com配置成功!
www.gitdms.com配置成功!
好了 反向代理配置完成!下面简单配置一下负载均衡配置。
4.Nginx服务器配置负载均衡
我们分析一下负载均衡原理:
nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。
为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。
说了那么多概念性的知识,我们来配置一下:
我们准备一个备用服务器:如图
启动备用服务器:
Nginx服务器配置:
可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1
upstream tomcat1 {
server 192.168.15.139:8081;
server 192.168.15.139:8080 weight=5;
}
访问www.gitdms.com
刷新5次会其启用备用服务器,起到了服务的负载均衡
到这里负载均衡已经配置完成,是一个高可用的服务!
5.总结
经过项目的使用,和项目的搭建,深刻体会到了Nginx服务器的强大,同时也对Nginx服务器高可用,深得企业的青睐。