标签:
一、Nginx服务基础
Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求)。正因为如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务。
1、Nginx服务的优势
Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性:
高并发连接:官方测试能支撑5万并发连接,在实际生产环境中跑到2,~3W并发连;
内存消耗少:在3W并发连接下,开启的10个NGINX进程才消耗150M内存(15M*10=150M);
配置文件非常简单:风格跟程序一样通俗易懂;
成本低廉:Nginx作为开源软件,可以免费使用,而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币;
支持rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分发到不同的后端服务器群组;
内置的健康检查功能:如果Nginx Proxy后端的后台web服务器宕机了,不会影响前端访问;
节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头;
稳定性高:用于反向代理,宕机的概率微乎其微;
二、安装部署Nginx
1、前提准备
Nginx最新的稳定版本为1.12.0,其安装文件可以从官方网站Nginx官方网站/下载。
1)Centos 7服务器一台;
2)Windows客户端一台:
3)Centos 7操作系统镜像;
4)Nginx镜像;
安装Nginx用到的所有镜像及软件包可以访问网盘提取:https://pan.baidu.com/s/18iRCuiMEyGbEFSeBp17uVQ
提取码:qszt
2、开始安装部署Nginx服务器
1)挂载Linux光盘,拷贝nginx依赖程序到/usr/src/目录

[[email protected] ~]# mount /dev/cdrom /mnt/ <!--挂载光盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ~]# cp /mnt/nginx-1.6.0.tar.gz /usr/src/ <!--拷贝Nginx包到/usr/src/目录-->
2)切换LAMP光盘,,将mnt目录下所有数据拷贝到/usr/src/目录
[[email protected] ~]# umount /mnt/ <!--卸载光盘-->

[[email protected] ~]# mount /dev/cdrom /mnt/ <!--挂载光盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ~]# cp /mnt/* /usr/src/ <!--将光盘目录下所有数据拷贝到/usr/src/目录-->
3)切换到操作系统光盘,安装nginx依赖程序
[[email protected] ~]# umount /mnt/
<!--卸载光盘-->

[[email protected] ~]# mount /dev/cdrom /mnt/ <!--挂载光盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ~]# rm -rf /etc/yum.repos.d/CentOS-* <!--清除系统自带yum源-->
[[email protected] ~]# yum -y install pcre-devel zlib-devel <!--安装Nginx的依赖程序-->
[[email protected] ~]# useradd -M -s /sbin/nologin nginx <!--创建管理Nginx的用户-->
[[email protected] ~]# tar zxvf /usr/src/nginx-1.6.0.tar.gz -C /usr/src/
<!--解压缩Nginx软件包-->
[[email protected] ~]# cd /usr/src/nginx-1.6.0/
[[email protected] nginx-1.6.0]# ./configure --prefix=http://www.mamicode.com/usr/local/nginx
--user=nginx --group=nginx --with-http_stub_status_module
<!--配置Nginx-->
[[email protected] nginx-1.6.0]# make && make install <!--编译安装Nginx-->
[[email protected] ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ <!--优化Nginx执行命令-->
3、Nginx服务的基本管理
[[email protected] ~]# nginx <!--启动Nginx服务-->
[[email protected] ~]# netstat -anptu | grep nginx
<!--监听Nginx服务是否启动成功-->
tcp
0
0 0.0.0.0:80
0.0.0.0:*
LISTEN
4663/nginx: master
[[email protected] ~]# killall -s QUIT nginx <!--关闭Nginx服务-->
[[email protected] ~]# killall -3 nginx
<!--关闭Nginx服务-->
[[email protected] ~]# killall -1 nginx
<!--重新启动Nginx-->
[[email protected] ~]# killall -s HUP nginx <!--重新启动Nginx-->
[[email protected] ~]# vim /etc/init.d/nginx <!--编写Nginx服务管理脚本-->
#!/bin/bash
#chkconfig: 35 90 30
#description:nginx server
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill 0s HUP $(cat $PIDF)
;;
*)
echo "Usage:$0 (start|stop|restart|reload)"
exit 1
esac
exit 0
[[email protected] ~]# chmod +x /etc/init.d/nginx <!--添加脚本执行权限-->
[[email protected] ~]# chkconfig --add nginx <!--添加为系统服务-->
[[email protected] ~]# chkconfig --level 35 nginx on <!--设置开机自动启动-->
[[email protected] ~]# /etc/init.d/nginx stop<!--脚本停止Nginx服务-->
[[email protected] ~]# /etc/init.d/nginx start<!--脚本启动Nginx服务-->
[[email protected] ~]# /etc/init.d/nginx restart<!--脚本重启Nginx服务-->