目录
Nginx安装与升级
Nginx介绍
Web服务器对比
Nginx简介
Nginx的安装
安装准备与步骤
源码安装Nginx
升级Nginx服务器
Nginx平滑升级
Nginx安装与升级
Nginx介绍
Web服务器对比
Unix和Linux平台下
—— Apache、Nginx(engine x、x引擎)、Tengine(Nginx的改良版)、Lighttpd
—— Java:Tomcat、IBM WebSphere、Jboss
—— 在同样配置的情况下相比于Apache,Nginx的性能更高,对于CPU和内存的消耗更低,并发量更高(并发量:同一时间内连接服务器的数量)
—— Tengine是由淘宝网发起的Web服务器项目,在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性
Windows平台下
—— 微软公司的IIS(Internet Information Server)
Nginx简介
Nginx("engine x")
—— 是俄罗斯人编写的十分轻量级的HTTP服务器
—— 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器
—— 官方网站:http://nginx.org
Nginx的安装
安装准备与步骤
准备所需的所有虚拟机,实验环境所需要的主机及对应的IP设置如表所示:
| 主机名 | IP地址 |
| client | ens33(192.168.159.10/24) |
| proxy | ens33(192.168.159.5/24) ens37(192.168.100.5/24) |
注:ens33的网络模式是NAT,ens37的网络模式是仅主机
在IP地址为192.168.159.5的主机上安装部署Nginx服务,要求编译时使用如下功能:
支持SSL加密功能
涉案之Nginx账户及组名称均为nginx
Nginx服务器升级到更高版本
然后客户端访问页面验证Nginx Web服务器:
使用火狐浏览器访问
使用curl访问
源码安装Nginx
1、使用源码包安装Nginx软件包
[root@proxy ~]# yum -y install gcc pcre-devel openssl-devel //安装依赖包,解决依赖关系
[root@proxy ~]# useradd -s /sbin/nologin nginx
[root@proxy ~]# tar -zxvf nginx-1.10.3.tar.gz
[root@proxy ~]# cd nginx-1.10.3/
[root@proxy nginx-1.10.3]# ./configure
> --prefix=/usr/local/nginx //指定安装路径(默认安装路径为/usr/local/nginx)
> --user=nginx //指定账户名称
> --group=nginx //指定组名称
> --with-http_ssl_module //支持SSL加密功能(SSL模块)
//注意:指定是账户和组是为了避免使用root启动程序,这样可以保证系统的安全性
[root@proxy nginx-1.10.3]# make && make install //编译并安装
[root@proxy nginx-1.10.3]# cd /usr/local/nginx/
[root@proxy nginx]# ls //目录/usr/local/nginx/下有这些文件说明安装成功
conf html logs sbin
2、nginx命令的用法
[root@proxy ~]# /usr/local/nginx/sbin/nginx //启动服务
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s stop //关闭服务
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload //重新加载配置文件
[root@proxy ~]# /usr/local/nginx/sbin/nginx -V //查看软件信息
[root@proxy ~]# ln -s /usr/local/nginx/sbin/nginx /sbin/ //创建快捷方式,方便后期使用,选择性使用,也可以不创建快捷模式
3、查看nginx服务的监听端口
netstat命令可以查看系统中启动的端口信息,该命令常用选项如下:
-a 显示所有端口的信息
-n 以数字格式显示端口号
-t 显示TCP连接的端口
-u 显示UDP连接的端口
-l 显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-p 显示监听端口的服务名称是什么(也就是程序名称)
nginx 服务默认通过TCP 80端口监听客户端请求:
[root@proxy ~]# /usr/local/nginx/sbin/nginx
[root@proxy ~]# netstat -lntup | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 68491/nginx: master
4、设置防火墙与SELinux(非必须的操作,如果有则关闭)
[root@proxy ~]# systemctl stop firewalld
[root@proxy ~]# setenforce 0
5、测试首页文件
Nginx Web服务默认首页文档存储目录为/usr/local/nginx/html/,在此目录下默认有一个名为index.html的文件,使用客户端访问测试页面:
[root@client ~]# curl http://192.168.159.5
Windows谷歌浏览器访问:
升级Nginx服务器
Nginx平滑升级
需要升级的原因
—— 旧版本出现漏洞,需要升级为新版本解决
—— 需要某些功能模块,但是前期没有添加,由于nginx不能动态添加模块,所以需要通过升级来添加所需要的模块。
升级时的注意事项
—— 在生产环境中,不需要升级conf(配置文件),配置文件中有之前修改的策略与优化,否则会导致之前的配置丢失和失效。
—— 不需要升级html(页面内容文档),否则会导致内面内容丢失。
—— 不需要升级logs(日志文件)
1、编译新版本Nginx软件
[root@proxy ~]# cd /usr/local/nginx/
[root@proxy nginx]# ls
//注:软件升级到新版本的时候,不需要升级conf(配置文件)、html(页面内容文档)、logs(日志文件),只需要升级sbin(主程序文件);可以跨版本升级(不要一次性跨太多版本),避免出现兼容性的问题。
[root@proxy ~]# tar -xvf nginx-1.12.2.tar.gz
[root@proxy ~]# cd nginx-1.12.2/
[root@proxy nginx-1.12.2]# ./configure
> --user=nginx
> --group=nginx
> --with-http_ssl_module
[root@proxy nginx-1.12.2]# make
[root@proxy ~]# cd /usr/local/nginx/sbin/ //1.10版本的Nginx所在的路径
[root@proxy sbin]# ls //1.10版本的Nginx
nginx
[root@proxy sbin]# cd /root/nginx-1.12.2/objs //1.12版本的Nginx所在的路径
[root@proxy objs]# ls //1.12版本的Nginx
2、备份老的nginx主程序,并使用编译好的新版本nginx替换老版本
[root@proxy nginx-1.12.2]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old //为了安全,不删除老版本,让老版本作为备份
[root@proxy nginx-1.12.2]# ls /usr/local/nginx/sbin/
nginx.old
[root@proxy nginx-1.12.2]# pwd
/root/nginx-1.12.2
[root@proxy nginx-1.12.2]# cp objs/nginx /usr/local/nginx/sbin/ //拷贝新版本的nginx
[root@proxy nginx-1.12.2]# ls /usr/local/nginx/sbin/ //新版本和老版本的备份
nginx nginx.old
[root@proxy nginx-1.12.2]# make upgrade //升级:关闭老的程序(nginx1.10)启动新的程序(1.12);可能会报错,因为老版本的nginx进程可能无法关闭,如果出现这种状况,我们就使用killall nginx杀死进程后在启动nginx
[root@proxy ~]# /usr/local/nginx/sbin/nginx -V //查看nginx版本,查看是否升级成功
3、客户端访问测试
分别使用浏览器和命令行工具curl测试服务器页面
如果使用firefox火狐浏览器,注意在ssh远程的时候一定要加-X选项
[root@proxy ~]# ssh -X root@192.168.159.10
[root@client ~]# firefox http://192.168.159.5
[root@client ~]# curl http://192.168.159.5



