Nginx网络服务
Nginx网络服务
一、Nginx服务基础
1.1 什么是Nginx:
一款高性能、轻量级web服务软件:
- 轻量级(系统资源消耗较少)
- 稳定性高(宕机的概率小)
- 高性能(抗并发能力较强,一般可以处理2~3万并发连接数,最多理论上可支持5万并发)
1.2 应用环境
- http web网站服务器
- 虚拟主机(基于域名、IP、端口)
- 反向代理
- web前端缓存
1.3 Nginx和Apache 的差异:
- nginx更轻量,比apache占用更少的内存资源
- nginx抗并发能力更强
- nginx是模块化设计,配置相对简单,组件也比较apache少
- nginx处理请求是异步非阻塞的,apache是同步阻塞性的
- nginx可以多个连接对应一个进程,apache是一个连接对应一个进程
- nginx是基于事件的web服务器 ,apache是基于流程的web服务器
二、编译安装Nginx服务
2.1 编译安装过程
1、关闭防火墙,将安装nginx所需软件包传到/opt目录下
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
nginx-1.12.0.tar.gz
2、安装依赖包
#nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
3、创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)
useradd -M -s /sbin/nologin nginx
4、编译安装Nginx
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \ #指定nginx的安装路径
--user=nginx \ #指定用户名
--group=nginx \ #指定组名
--with-http_stub_status_module #启用 http_stub_status_module 模块以支持状态统计
make -j 4 && make install #启用4核编译
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #让系统识别nginx的操作命令
2.2 检查、启动、重启、停止 nginx服务
nginx -t #检查配置文件是否配置正确
#启动
nginx
#停止
cat /usr/local/nginx/logs/nginx.pid #先查看nginx的PID号
#杀死Nginx进程
kill -3 <PID号>
或 kill -s QUIT <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/nginx \
--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 #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的
#或者先 killall nginx ,再/usr/local/nginx/sbin/nginx
2.3 添加 Nginx 系统服务
方法一:
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 9