目录
1、关闭防火墙,将安装Nginx所需软件包传到/opt目录下
引言:Nginx和Apache有所区别,有些在Apache用不了的时候能用Nginx
一、Nginx 概述
1、什么是 Nginx
一款高性能、轻量级Web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接的处理能力高
单台物理服务器可支持30 000~50 000个并发请求
2、Nginx并发连接
NG并发连接能力受以下二个因素的影响:
CPU个数
本地物理服务器系统的最大文件打开数
3、Nginx 应用场景
静态服务器(图片,视频服务)
动态服务
反向代理,负载均衡
缓存服务
4、nginx的HTTP七层代理和四层代理
nginx的http七层代理,其实它工作在OSI七层模型的应用层。由于其可以解析http协议,我们可以根据URI进行请求的分发,具有很大的灵活性,但是协议的解析存在性能的消耗。为了能获取更高的代理性能,nginx支持了四层代理,即传输层,就是我们常说的TCP/UDP层,没有协议解析,就是简单的TCP/UDP转发,代理性能突飞猛进,该功能依赖于ngx_http_upstream_module和ngx_stream_upstream_module,互联网公司将其作为入口代理来工作。
5、反向代理
反向代理是指用户不需要知道目标服务器的地址,也不需要在用户端做任何设定,可以直接通过问反向代理服务器来获得目标服务器的资源。反向代理提高了内部服务器的安全,加快了对内部服务器的访问速度。
(1)反向代理定义
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。
同时,用户不需要知道目标服务器的地址,也无须在用户端做任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
(2)反向代理的优点
提高了内部服务器的安全
加快了对内部服务器的访问速度
节约了有限的IP资源
二、Nginx和Apache的差异
Nginx是一个基于事件的Web服务器,Apache是一个基于流程的服务器;
Nginx所有请求都由一个线程处理,Apache单个线程处理单个请求;
Nginx避免子进程的概念,Apache是基于子进程的;
Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般;
Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件;
Nginx支持热部署,Apache不支持热部署;
Nginx对于静态文件处理具有更高效率,Apache相对一般;
Nginx在反向代理场景具有明显优势,Apache相对一般。
三、编译安装Nginx服务
1、关闭防火墙,将安装Nginx所需软件包传到/opt目录下
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
nginx-1.12.2.tar.gz
rz -E 传输安装包
2、安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
3、创建运行用户、组
useradd -M -s /sbin/nologin nginx
4、配置软件模块
[root@zzj opt]# tar zxf nginx-1.12.2.tar.gz
[root@zzj opt]# cd nginx-1.12.2/
[root@zzj nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
5、编译安装Nginx
make && make install
6、优化配置文件路径,便于系统识别nginx的操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx -t
7、添加Nginx系统服务
(1)
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$COM
;;
stop)
kill -s QUIT $(cat $PID)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PID)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
chmod +x /etc/init.d/nginx
chkconfig --add nginx #添加为系统服务
systemctl stop nginx
systemctl start nginx
(2)
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
8、赋权,重启服务并设置开机自启
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
9、验证服务
四、Nginx平滑升级1.12—>1.20
1、上传需要升级的软件包
2、关闭nginx进程
3、配置软件模块
[root@king opt]# tar zxf nginx-1.20.2.tar.gz
[root@king opt]# cd nginx-1.20.2/
[root@king nginx-1.20.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module \
> --with-http_ssl_module
4、编译安装
yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
./configure
make
5、备份旧版本,用新版本覆盖过去
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx
6、启动服务并检测版本
nginx
nginx -v
五、总结
学会安装nginx可以为了后面的lnmp做准备,更新升级nginx可以让我们知道如何在linux升级服务。