nginx介绍及编译安装
nginx介绍
是一个流行的开源的高性能的HTTP和反向代理服务器,也可以用作邮件代理服务器。它以其高性能、稳定性、丰富的功能集和低资源消耗而闻名
nginx特点
-
高性能:
- Nginx以其高效的事件驱动架构而闻名,能够处理大量并发连接而不会消耗过多的系统资源。这使得Nginx在高流量环境下表现出色。
-
低资源消耗:
- 相比传统的Web服务器,Nginx具有较低的内存消耗和更高的并发连接处理能力,适合用于节约资源的环境。
-
可扩展性:
- Nginx支持模块化架构,可以通过添加模块来扩展其功能,从而满足不同应用场景的需求。
-
负载均衡和反向代理:
- Nginx具有强大的负载均衡和反向代理功能,能够有效地分发流量到多个后端服务器,提高系统的可用性和性能。
-
静态内容服务:
- Nginx在提供静态内容(如图片、CSS、JavaScript文件)时非常高效,能够快速地响应客户端请求。
-
反向代理缓存:
- Nginx可以作为反向代理服务器,缓存静态内容或动态内容,减轻后端服务器的压力,提高网站性能。
-
SSL/TLS终结:
- Nginx支持SSL/TLS终结,能够对加密流量进行解密和加密,提供安全的通信通道。
-
灵活的配置:
- Nginx的配置文件简洁明了,支持灵活的配置选项,允许管理员根据需求进行定制化配置。
-
高可靠性:
- Nginx经过长时间的实际应用验证,稳定性和可靠性较高,适用于关键业务系统的部署。
安装nginx
1.yum 安装
yum安装前 需要先安装epel额外源,官方源内没有nginx
yum install epel-release.noarch -y
额外源安装好后,在安装nginx
yum install nginx -y
yum 安装的nginx的配置文件在/etc/nginx/nginx.conf 默认根目录在 /usr/share/nginx/html 默认日志文件在/var/log/nginx/下
2.编译安装
可以官网复制下载链接,在linux中使用 wget下载,或者在浏览器上下载后,直接拖进xshell中也是可以的。
www.nginx.org 免费社区,内有nginx各版本压缩包,也有nginx有关配置详解
这里我们下载1.18.0版本,右击复制链接,在linux中下载,
安装依赖包
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel
新建nginx用户便于管理
useradd -M -s /sbin/nologin nginx
tar xf 解压
cd 进入
./configure 进行编译安装,后面加上需要的模块
./configure --help 可以查看模块帮助
./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
make && make install 执行该命令
修改权限
chown -R nginx.nginx /apps/nginx
编译安装完成 切换到/apps/nginx查看
-
conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
-
html目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
-
logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
-
sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。
启动nginx
这时候已经可以启动nginx了,使用绝对路径可以启动, /apps/nginx/sbin/nginx , 但这样太过于麻烦,这未免可以做软连接, ln -s /apps/nginx/sbin/nginx /usr/sbin 这样可以直接 使用 nginx 启动 停止则使用 killall nginx
我们可以创建自启动文件,使用system启动
创建文件
vim /usr/lib/systemd/system/nginx.service
写入配置文件
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
#注意文件位置,如果不对 启动不了
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
#注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
:wq 保存退出
systemctl daemon-reload
重新加载配置
systemctl enable --now nginx
开机自启并立即启动 如果卡主是应为logs下有 nginx.pid 文件 删除即可
systemctl start nginx 启动nginx
nginx 常用选项
nginx -t 检查语法
nginx -v 查看版本
nginx -V 查看版本(更详细,可以看到所安装的模块)
nginx -s reload 不关闭nginx 重新读取配置文件
nginx -s reopen 重新生成日志
nginx -s stop 立即停止nginx
nginx -s quit 优雅退出, 不影响业务的情况下