Nginx服务及基础配置
一、Nginx概述
1. Nginx功能介绍
-
-
http/https协议的反向代理 7层
-
结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求
-
- 模块化设计,有较好的扩展性
- 高可靠性
- 支持热部署:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存
- event-driven,aio,mmap,sendfile
3. Nginx模块
-
-
标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等
-
可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等
-
邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持
-
Stream服务模块: 实现反向代理功能,包括TCP协议代理
-
1 yum install epel-release -y 2 #安装epel-release扩展源
1 yum install nginx -y 2 #安装nginx服务
- YUM安装的nginx配置文件位置在:/etc/nginx.conf。默认根目录在:/usr/share/nginx/html。默认日志文件在:/var/log/nginx/路径下。
2. 编译安装Nginx
- 官网下载安装包,nginx官网地址nginx news,进入后找到右边菜单栏的download,进入后选择自己想要下载的版本可以直接下载到本地然后传到Linux系统中或右键复制该包的下载连接在Linux系统中wget此地址直接下载到Linux系统中。
- 安装包下载完成后安装编译需要的依赖环境和工具,然后进入对应的目录进行解压编译。
1 yum -y install gcc pcre-devel openssl-devel zlib-devel 2 #安装编译安装需要的依赖包和工具 3 cd /opt 4 #进入指定安装包下载的目录 /opt下 5 tar xf nginx-1.18.0.tar.gz 6 #将nginx包解压到当前文件夹 7 cd nginx-1.18.0 8 #进入解压后nginx包中 9 ./configure 10 #执行当前目录下的configure脚本检测编译安装环境和工具 11 --prefix=/apps/nginx \ 12 #执行脚本时指定路径为 /apps/nginx文件夹中,若没有此文件夹需要先创建再进行编译指定 13 --user=nginx \ 14 #指定用户为nginx用户 15 --group=nginx \ 16 #指定组为nginx组 17 --with-http_ssl_module \ 18 #以下是编译时安装的指定模块 19 --with-http_v2_module \ 20 --with-http_realip_module \ 21 --with-http_stub_status_module \ 22 --with-http_gzip_static_module \ 23 --with-pcre \ 24 --with-stream \ 25 --with-stream_ssl_module \ 26 --with-stream_realip_module 27 28 make 29 #执行完成检测编译安装环境和工具后将nginx安装包翻译为二进制 30 make install 31 #翻译完成后将包写入磁盘中
- 写进磁盘完成后进入部署的文件夹使用绝对路径启动nginx服务,然后查看是否有nginx进程。
1 /apps/nginx/sbin/nginx 2 #使用绝对路径启动nginx 3 ps aux |grep nginx 4 #查看是否有nginx进程
注意:以下命令若非yum安装使用时要使用绝对路径调用nginx命令,或将编译安装路径中的sbin文件夹中的nginx程序拷贝到/usr/sbin路径下。
1. 基础使用
- nginx -V 查看安装了那些模块
- nginx -v 查看版本号
- nginx -s 发送信号 后面可以跟stop、reload、quit、reopen
- nginx -t 检查著配置文件语法
- nginx -g 修改执行用户ps aux |grep nginx中查看。需要注销配置文件中的user nginx中。nginx -g "daemon off"前台运行,默认后台运行容器中需要使用。
- nginx -c 指定配置文件,一般用于.service文件中
2. Nginx信号
- quit信号 -----SIGTERM,直接停止,不等服务执行完,nginx -s quit或kill -TERM执行。
- stop信号-----SIGQUIT,优雅的退出,等所有服务执行完再退出,nginx -s stop 或kill -QUIT执行。
- reopen信号---SIGUSER1 分隔日志。创建新的nginx日志时需要发送USER1信号给nginx主进程才可以生效。kill -USER1 nginx主进程pid号。
- SIGUSER2信号,优雅的升级,不影响正在使用的用户,kill -USER2执行。
- reload信号----SIGHUP 重新加载配置文件,nginx -s reload或kill -HUP执行。
四、Web服务选择及优化
1. Apache与Nginx对比
- Nginx使用异步非阻塞工作模式,Apache使用同步阻塞模式。
- Nginx处理静态资源更好,Apache处理动态资源更好。
- Nginx是轻量级web服务器,耗费资源比Apache少。
- Nginx抗并发性更好,Apache更稳定。
- Apache对接PHP简单,Nginx对接需要借助其他后端工具。
2. Nginx性能优化
- 版本号修改
- 修改auto , 自适应cpu
- 长连接 , 超时时间
- 压缩
- 默认访问网页
- 调整进程优先级, -20到19,越小越好
- 防盗链
- 日志分割
- cpu亲缘性
- 进程最大连接数
- 单个进程最大连接数
- 文件打开数
- 缓存状态页