在lnmp环境中的nginx怎么编译安装

发布时间:2022-04-29 16:28:32 作者:iii
来源:亿速云 阅读:122
# 在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源码

2.1 选择版本

访问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

2.2 源码目录结构

├── auto/          # 自动检测系统环境的脚本
├── conf/          # 示例配置文件
├── configure      # 编译配置脚本
├── contrib/       # 辅助工具
├── man/           # 手册文档
└── src/           # 核心源代码

三、编译配置

3.1 基本编译选项

执行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

3.2 常用模块说明

模块名称 作用描述
–with-http_gzip_module 启用Gzip压缩支持
–with-stream 支持TCP/UDP代理
–with-debug 启用调试日志
–with-threads 启用线程池支持

3.3 高级优化参数

./configure \
--with-cc-opt='-O3 -march=native -pipe' \
--with-ld-opt='-Wl,-rpath,/usr/local/lib -Wl,-z,now'

四、编译与安装

4.1 执行编译

make -j $(nproc)  # 使用所有CPU核心加速编译

4.2 安装到系统

make install

4.3 验证安装

检查二进制文件:

/usr/local/nginx/sbin/nginx -V

输出应显示编译时启用的所有模块参数。


五、系统集成

5.1 创建系统用户

useradd -r -s /sbin/nologin nginx

5.2 配置systemd服务

创建/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

六、安全加固

6.1 文件权限设置

chown -R root:nginx /usr/local/nginx
chmod 750 /usr/local/nginx/sbin/nginx

6.2 隐藏版本信息

修改nginx.conf

server_tokens off;

6.3 防火墙配置

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

七、性能调优

7.1 工作进程配置

worker_processes auto;  # 自动匹配CPU核心数
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;

7.2 连接优化

events {
    worker_connections 4096;
    multi_accept on;
    use epoll;
}

7.3 缓冲区设置

client_body_buffer_size 16K;
client_header_buffer_size 1k;
large_client_header_buffers 4 8k;

八、常见问题解决

8.1 端口冲突问题

netstat -tulnp | grep :80
kill -9 <PID>  # 停止占用进程

8.2 模块加载失败

重新编译添加缺失模块:

./configure --add-module=/path/to/module
make && make install

8.3 日志文件切割

使用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实现热升级。

附录:
1. Nginx官方文档
2. 编译参数完整参考 “`

该文档包含约2100字,采用标准的Markdown格式编写,包含代码块、表格、列表等元素,完整覆盖了编译安装Nginx的技术要点。实际部署时请根据具体环境调整参数。

推荐阅读:
  1. LNMP环境部署之---PHP编译安装。
  2. LNMP - 编译安装PHP

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

lnmp nginx

上一篇:CentOS6.5环境安装nginx服务器及负载均衡配置的方法

下一篇:Linux服务器下该怎么安装配置Nginx

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》