2025最新 Nginx安装教程:编译安装 & RPM 方式详解
并发轻盈巧似风,
负载分流稳从容。
千机万网平如镜,
把酒言欢论英雄。
这款WEB服务器软件广泛用于网站建设,因具备出色的并发处理能力,能高效地实现负载均衡,巧妙处理静态和动态资源的分离,提升整体运行速度和稳定性。无论是编译安装还是RPM安装方式,都能有效地部署应用环境,适合不同需求场景。
静态文件服务:
该服务器可快速地提供HTML、CSS、JS及图片、视频等资源文件,实现网站内容高速响应及大并发处理。
动态内容代理:
对于PHP、Python、Java、Node.js等语言开发的动态网站或应用程序,可通过FastCGI、uWSGI等协议进行请求转发,完成动态数据处理。
请求均衡分发:
面对高访问量环境,可使用反向代理机制将用户请求分发至多台后端机器,实现流量的合理分配和系统稳定性。
实时通信应用代理:
支持基于WebSocket的实时应用通信,使用HTTP协议建立持久连接,适用于在线聊天、通知推送等实时交互场景。
安全协议支持:
支持集成SSL证书,实现数据的安全传输,适用于支付系统、用户敏感信息交换场景。
资源缓存加速:
内置缓存功能,针对高频静态内容进行缓存分发,有效降低服务器负担,提升访问效率。
统一接口网关:
作为接口的统一入口,处理请求路由、用户认证、跨域访问(CORS)与流量管控,适合微服务和分布式系统场景。
一、资源准备
在开始编译安装之前,需要提前准备好源码压缩包(zip格式)或RPM安装包,并确保操作系统已创建相应用户,以便安装与运行服务。同时,还需检查服务器上的编译环境,确保已安装必要的编译工具和依赖库,以便顺利完成安装过程。
1. 安装包资源
wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar -zxvf nginx-1.22.1.tar.gz
2. 用户资源
useradd -M -s /usr/sbin/nologin nginx
3. 编译环境
yum groupinstall "Development Tools" -y
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel nginx-mod-http2
二、执行安装
编译安装方式灵活性更高,可以根据实际需求自定义安装参数,功能裁剪和优化更自由,但需要具备一定技术基础,安装耗时较长且需自行解决依赖问题。相比之下,RPM安装方式部署迅速、操作简便,依赖关系自动解决,更适合新手和快速搭建环境的场景,但无法灵活调整编译参数与功能,扩展性稍差。
1. 编译安装
./configure --prefix=/etc/nginx --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gunzip_module --with-http_slice_module --with-http_secure_link_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio --with-pcre --with-stream
make && make install
2. RPM安装
wget http://nginx.org/packages/rhel/9/x86_64/RPMS/nginx-1.22.1-1.el9.ngx.x86_64.rpm
rpm -ivh --nodeps nginx-1.22.1-1.el9.ngx.x86_64.rpm
三、服务管理
将服务器软件配置成系统服务并创建启动脚本的软连接后,能显著提升运维效率与稳定性,方便管理员直接调用系统命令统一管理服务,实现自动启动、关闭、重启和状态检查等操作,无需频繁输入复杂指令,降低出错风险,提高管理便捷性。
1. 脚本命令
cp /etc/nginx/sbin/nginx /usr/bin/nginx
重载配置:nginx -s reload
启动:nginx
停止:nginx -s stop
2. 服务命令
- 重载配置:systemctl daemon-reload
- 服务命令:systemctl [options] nginx(start | status | stop | restrart | enable | disable)
sudo tee /etc/systemd/system/nginx.service << EOF
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/www/nginx/sbin/nginx -t
ExecStart=/www/nginx/sbin/nginx
ExecReload=/www/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
四、开启SSL访问
五、性能优化
📌 推荐阅读