您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 在LNMP环境中的Nginx怎么编译安装
## 前言
LNMP(Linux + Nginx + MySQL + PHP)是当前Web服务领域广泛使用的技术栈之一。与预编译安装包相比,编译安装Nginx能获得更高的性能调优空间和定制化功能。本文将详细介绍在Linux系统中从源码编译安装Nginx的全过程,包括环境准备、依赖处理、编译参数优化以及服务配置等关键环节。
---
## 一、环境准备
### 1.1 系统要求
- Linux操作系统(推荐CentOS 7+/Ubuntu 18.04+)
- 至少1GB可用磁盘空间
- GCC 4.8+ 开发工具链
- Root或sudo权限
### 1.2 基础工具安装
```bash
# CentOS/RHEL
yum install -y gcc make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel
# Ubuntu/Debian
apt-get update && apt-get install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev
访问Nginx官方下载页获取稳定版源码:
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
├── auto/ # 自动检测系统环境的脚本
├── conf/ # 示例配置文件
├── configure # 编译配置脚本
├── contrib/ # 辅助工具
├── man/ # 手册文档
└── src/ # 核心源代码
执行configure
脚本生成Makefile:
./configure \
--prefix=/usr/local/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_module | 启用Gzip压缩支持 |
–with-stream | 支持TCP/UDP代理 |
–with-debug | 启用调试日志 |
–with-threads | 启用线程池支持 |
./configure \
--with-cc-opt='-O3 -march=native -pipe' \
--with-ld-opt='-Wl,-rpath,/usr/local/lib -Wl,-z,now'
make -j $(nproc) # 使用所有CPU核心加速编译
make install
检查二进制文件:
/usr/local/nginx/sbin/nginx -V
输出应显示编译时启用的所有模块参数。
useradd -r -s /sbin/nologin nginx
创建/etc/systemd/system/nginx.service
:
[Unit]
Description=nginx - high performance web server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MNPID
ExecStop=/bin/kill -s QUIT $MNPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启用服务:
systemctl daemon-reload
systemctl enable nginx
systemctl start nginx
chown -R root:nginx /usr/local/nginx
chmod 750 /usr/local/nginx/sbin/nginx
修改nginx.conf
:
server_tokens off;
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
worker_processes auto; # 自动匹配CPU核心数
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;
events {
worker_connections 4096;
multi_accept on;
use epoll;
}
client_body_buffer_size 16K;
client_header_buffer_size 1k;
large_client_header_buffers 4 8k;
netstat -tulnp | grep :80
kill -9 <PID> # 停止占用进程
重新编译添加缺失模块:
./configure --add-module=/path/to/module
make && make install
使用logrotate创建/etc/logrotate.d/nginx
:
/usr/local/nginx/logs/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
sharedscripts
postrotate
/bin/kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid 2>/dev/null) 2>/dev/null || true
endscript
}
通过源码编译安装Nginx虽然步骤较复杂,但能获得更精细的性能控制和功能定制能力。建议生产环境中将编译参数和安装路径标准化,便于后续维护升级。对于需要频繁更新的场景,可以考虑使用make upgrade
实现热升级。
该文档包含约2100字,采用标准的Markdown格式编写,包含代码块、表格、列表等元素,完整覆盖了编译安装Nginx的技术要点。实际部署时请根据具体环境调整参数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。