此文档用于记录源码安装nginx的过程
源码包下载
nginx 官网:https://nginx.org,查看最新稳定版,下载地址,本文使用的是当前最新稳定版本 v1.24.0
1
2
3
4
|
wget https://nginx.org/download/nginx-1.24.0.tar.gz
##解压
tar -zxvf nginx-1.24.0.tar.gz
|
安装编译环境
1
2
|
yum update -y
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
|
编译安装
配置编译选项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/run/nginx.pid \
--user=root --group=root \
--with-compat --with-file-aio \
--with-threads --with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module --with-mail \
--with-mail_ssl_module --with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module
|
这条命令是用来配置 Nginx 服务器编译选项的。它通过执行 ./configure 脚本,并指定一系列的选项来定制 Nginx 的安装和功能。下面是对这条命令中各个选项的解释:
--prefix=/data/nginx: 指定 Nginx 安装的目录。这意味着 Nginx 将被安装在 /data/nginx 目录下。
--pid-path=/data/nginx/run/nginx.pid: 指定 Nginx 进程ID(PID)文件的路径。Nginx 使用这个文件来存储其主进程的PID。
--user=root --group=root: 指定运行 Nginx 进程的用户和组,这里都是设置为 root。出于安全考虑,通常推荐使用非 root 用户运行Nginx。
--with-compat: 允许加载兼容性的动态模块。
--with-file-aio: 启用文件异步I/O支持。
--with-threads: 启用线程池支持。
--with-http_addition_module: 启用 HTTP 添加模块。
--with-http_auth_request_module: 启用 HTTP 授权请求模块。
--with-http_dav_module: 启用 WebDAV 模块。
--with-http_flv_module: 启用 Flash Video (FLV) 模块。
--with-http_gunzip_module: 启用在线解压(gunzip)模块。
--with-http_gzip_static_module: 启用静态文件Gzip压缩模块。
--with-http_mp4_module: 启用 MP4 流媒体模块。
--with-http_random_index_module: 启用随机索引模块,用于从目录中随机选择一个页面作为索引。
--with-http_realip_module: 启用用于改变客户端IP地址到代理或负载平衡器提供的地址的模块。
--with-http_secure_link_module: 启用安全链接模块,用于生成/验证带有秘密密钥的安全链接。
--with-http_slice_module: 启用请求分片(slice)模块,支持分段传输文件。
--with-http_ssl_module: 启用 SSL/TLS 支持。
--with-http_stub_status_module: 启用用于提供基础状态信息的模块。
--with-http_sub_module: 启用 HTTP 内容替换模块。
--with-http_v2_module: 启用 HTTP/2 模块。
--with-mail: 启用邮件代理服务器模块。
--with-mail_ssl_module: 启用邮件代理服务器模块的 SSL/TLS 支持。
--with-stream: 启用 TCP/UDP 流代理模块。
--with-stream_realip_module: 启用流处理的 realip 模块。
--with-stream_ssl_module: 启用流处理的 SSL 模块。
--with-stream_ssl_preread_module: 启用在 SSL 握手前读取数据的模块。
通过指定这些选项,你可以定制 Nginx 的安装,包括启用特定的 HTTP、mail、流处理功能和模块。安装路径、运行用户和 PID 文件位置等也可以根据需要进行调整。
编译安装
验证
1
|
/usr/local/nginx/sbin/nginx -V
|
输出如下:
1
2
3
4
5
|
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/run/nginx.pid --user=root --group=root --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module
|
配置
创建软连接
1
|
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
|
配置Nginx系统服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The Nginx HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
|
设置开机自启
1
2
3
4
|
systemctl daemon-reload #重新加载配置
systemctl start nginx #启动服务
systemctl enable nginx #开机自启
|