# Linux怎么编译安装Nginx ## 前言 Nginx是一款高性能的HTTP和反向代理服务器,以其稳定性、丰富的功能集和低资源消耗而闻名。虽然大多数Linux发行版提供预编译的Nginx包,但通过源码编译安装可以获得以下优势: 1. 使用最新版本(官方源可能滞后) 2. 自定义模块和功能 3. 优化特定硬件环境 4. 深度定制安装路径 本文将详细介绍从源码编译安装Nginx的完整流程。 --- ## 一、准备工作 ### 1.1 系统要求 - Linux操作系统(本文以Ubuntu 22.04/CentOS 7为例) - root或sudo权限 - 至少100MB可用磁盘空间 - 基础开发工具 ### 1.2 安装依赖项 ```bash # Ubuntu/Debian sudo apt update sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev \ libssl-dev wget git # CentOS/RHEL sudo yum groupinstall -y "Development Tools" sudo yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel wget
推荐从官网获取稳定版:
wget https://nginx.org/download/nginx-1.25.3.tar.gz tar -zxvf nginx-1.25.3.tar.gz cd nginx-1.25.3
运行configure脚本检测系统环境:
./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/lock/nginx.lock \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_stub_status_module \ --with-threads
模块名称 | 作用 | 参数 |
---|---|---|
http_gzip_module | Gzip压缩支持 | --with-http_gzip_static_module |
http_geoip_module | 地理定位 | 需先安装GeoIP库 |
http_image_filter_module | 图像处理 | 需先安装GD库 |
stream_module | TCP/UDP代理 | --with-stream |
例如添加echo-nginx-module
:
git clone https://github.com/openresty/echo-nginx-module.git ./configure --add-module=../echo-nginx-module
make -j$(nproc) # 使用所有CPU核心加速编译
sudo make install
sudo useradd -r -s /sbin/nologin nginx
echo 'export PATH=/usr/local/nginx/sbin:$PATH' >> ~/.bashrc source ~/.bashrc
创建/lib/systemd/system/nginx.service
:
[Unit] Description=The NGINX HTTP and reverse proxy server After=network.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=/bin/kill -s QUIT $MNPID PrivateTmp=true User=nginx Group=nginx [Install] WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload sudo systemctl enable nginx sudo systemctl start nginx
nginx -v
nginx -t
浏览器访问 http://服务器IP
应看到欢迎页面。
如果80端口被占用:
sudo netstat -tulnp | grep 80 kill -9 <PID>
sudo chown -R nginx:nginx /var/log/nginx
检查编译时是否包含所需模块,重新编译安装。
# 备份旧版本 cp /usr/sbin/nginx /usr/sbin/nginx.old # 编译新版本后执行 make install kill -USR2 $(cat /var/run/nginx.pid)
sudo rm -rf /usr/local/nginx sudo rm /usr/sbin/nginx sudo rm -rf /etc/nginx
通过源码编译安装Nginx虽然步骤较多,但能获得完全可控的定制化服务。建议生产环境使用此方式前,先在测试环境充分验证。如需更简便的安装,可考虑OpenResty或官方预编译包。
注意:本文所有操作应在理解命令含义后执行,不当操作可能导致系统服务异常。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。