1、Nginx基础
一款高新能、轻量级Web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接的处理能力高
单台物理服务器可支持30 000~50 000个并发请求。
1.1Nginx和Apache的差异
轻量级,Nginxt比Apache占用更少的内存及资源:
静态处理,Nginx静态处理性能比Apache高;
Nginx可以实现无缓存的反向代理加速,提高网站运行速度;
Nginx支持热部署,启动速度迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级;
Nginx高度模块化,编写模块相对简单,且组件比Apache少;
高并发下Nginx能保持低资源低消耗高性能;
Nginx是异步进程,多个连接可以对应一个进程;Apache是同步多进程,一个连接对应一个进程;
Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于硬件;
Nginx配置简洁,Apache配置复杂。
1.2Nginx和Apache的优缺点比较
nginx相对于apache的优点∶
轻量级,同样起web服务,比Apache占用更少的内存及资源。
高并发,Nginx处理请求是异步非阻塞的,而Apache是阻塞型的在高并发下,Nginx能保持低资源低消耗高性能。
高度模块化的设计。
编写模块相对简。
社区活跃,各种高性能模块出品速度
apache相对于nginx的优点∶
rewrite比nginx的rewrite强大
模块多,基本想到的都可以找到
少bug, Nginx的bug相对较超稳定
存在就是理由,一般来说,需要性能的web服务,用Nginx。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。
1.3 编译安装Nginx服务
1、关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
2、安装依赖包
[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make
[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make
3、创建运行用户、组
Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限
[root@localhost ~]# useradd -M -s /sbin/nologin/ nginx
4、将安装nginx所需的软件包传到/opt目录下并解压
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
rh
[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# ls
nginx-1.12.0.tar.gz rh
[root@localhost opt]# tar zxvf nginx-1.12.2.tar.gz -C /opt/
5、编译安装Nginx
配置
[root@localhost opt]# ls
nginx-1.12.0 nginx-1.12.0.tar.gz rh
[root@localhost opt]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
[root@localhost nginx-1.12.0]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
编译安装
[root@localhost nginx-1.12.0]# make && make install
6、优化路径
[root@localhost local]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
创建软连接 方便系统识别
7、 检查、启动、重启、停止Nginx服务
nginx -t #检查配置文件是否配置正确
nginx #启动
#停止
cat /usr/local/nginx/logs/nginx.pid #先查看nginx的PID号
kill -3 <PID号>
或者
killall -3 nginx
killall -s QUIT nginx
------------------------------------------------
#重载
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
-----------------------------------------------
#日志分隔,重新打开日志文件
kill -USR1 <PID号>
-----------------------------------------------
#平滑升级
kill -USR2 <PID号>
------------------------------------------------
新版本升级
tar -zxvf nginx-1.xx.xx.tar.gz
cd nginx-1.xx.xx
./configure \
-prefix=/usr/local/ngink \
-user=nginx\
-group=nginx \
-with-http stub_status _module\
-with-http_ssl_module
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx
make upgrade
#或者先killall nginx,再/usr/local/nginx/sbin/nginx
开启
关闭
法一
[root@localhost sbin]# nginx
[root@localhost sbin]# netstat -natp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6783/nginx: master
[root@localhost sbin]# cat /usr/local/nginx/logs/nginx.pid
6783
[root@localhost sbin]# kill -3 6783
[root@localhost sbin]# netstat -natp | grep nginx
法二