编译安装 Nginx
✅ 一、准备环境
1. 安装依赖包
sudo yum groupinstall -y "Development Tools"
sudo yum install -y pcre-devel zlib-devel openssl-devel
pcre-devel
:支持正则表达式(用于location
和rewrite
)zlib-devel
:支持 gzip 压缩openssl-devel
:支持 HTTPS/SSLDevelopment Tools
:包含 gcc、make 等编译工具
✅ 二、下载 Nginx 源码
前往 https://nginx.org/en/download.html 选择稳定版(Stable version)
# 创建工作目录
cd /usr/local/src
sudo mkdir -p /usr/local/src
cd /usr/local/src# 下载 Nginx(以 1.24.0 为例,可替换为最新版)
sudo wget https://nginx.org/download/nginx-1.24.0.tar.gz# 解压
sudo tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
✅ 三、配置编译选项
sudo ./configure \--prefix=/usr/local/nginx \--sbin-path=/usr/sbin/nginx \--conf-path=/etc/nginx/nginx.conf \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--pid-path=/var/run/nginx.pid \--lock-path=/var/run/nginx.lock \--with-http_ssl_module \--with-http_v2_module \--with-http_realip_module \--with-http_addition_module \--with-http_sub_module \--with-http_dav_module \--with-http_gunzip_module \--with-http_gzip_static_module \--with-http_auth_request_module \--with-http_random_index_module \--with-http_secure_link_module \--with-http_degradation_module \--with-http_slice_module \--with-mail \--with-mail_ssl_module \--with-stream \--with-stream_ssl_module \--with-stream_realip_module \--with-stream_ssl_preread_module \--with-threads \--with-compat \--user=nginx \--group=nginx
🔍 常用参数说明:
--prefix
:安装路径--with-http_ssl_module
:启用 HTTPS--with-http_gzip_static_module
:支持静态 Gzip--user=nginx
:运行用户
✅ 四、编译并安装
sudo make
sudo make install
⏱️ 编译时间约 2~5 分钟,取决于服务器性能。
✅ 五、创建用户和目录
# 创建 nginx 用户(不用于登录)
sudo useradd -r -s /sbin/nologin nginx# 创建日志目录
sudo mkdir -p /var/log/nginx
sudo chown nginx:nginx /var/log/nginx# 创建配置目录
sudo mkdir -p /etc/nginx
✅ 六、复制默认配置文件
# 将编译生成的配置复制到 /etc/nginx/
sudo cp /usr/local/src/nginx-1.24.0/conf/nginx.conf /etc/nginx/nginx.conf
你可以根据需要修改:
sudo vi /etc/nginx/nginx.conf
✅ 七、创建 systemd 服务文件(开机自启)
创建服务文件:
sudo tee /etc/systemd/system/nginx.service <<-'EOF'
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF
✅ 八、启动 Nginx
# 重新加载 systemd
sudo systemctl daemon-reload# 启动 Nginx
sudo systemctl start nginx# 设置开机自启
sudo systemctl enable nginx# 查看状态
sudo systemctl status nginx
✅ 九、验证安装
# 查看版本
nginx -v# 检查配置是否正确
nginx -t# 访问本地
curl -I http://localhost
浏览器访问 http://你的服务器IP
,看到 “Welcome to nginx!” 页面即成功 ✅
✅ 十、常用命令
命令 | 说明 |
---|---|
nginx -t | 测试配置文件 |
nginx -s reload | 重新加载配置(热重启) |
nginx -s stop | 快速停止 |
nginx -s quit | 优雅关闭 |
systemctl restart nginx | 重启服务 |
✅ 十一、(可选)配置防火墙
# 开放 80 和 443 端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
✅ 十二、配置 HTTPS(可选)
如果你有 SSL 证书,可在 nginx.conf
中配置:
server {listen 443 ssl;server_name your-domain.com;ssl_certificate /etc/nginx/ssl/fullchain.pem;ssl_certificate_key /etc/nginx/ssl/privkey.pem;location / {root /usr/share/nginx/html;index index.html;}
}