一、源码安装nginx
1、下载nginx tar包(https://nginx.org/en/download.html)
wget https://nginx.org/download/nginx-1.22.1.tar.gz
2、解压
tar -zxf nginx-1.22.1.tar.gz
3、补包
# nginx源码编译需要依赖gcc环境
yum install -y gcc-c++
"""
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此
"""
yum install pcre pcre-devel
#zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
# openssh 安装
yum install -y openssl openssl-devel
4、安装
cd nginx-1.21.4
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
"""
./configure \
--prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/usr/local/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
"""
5、nginx 配置编译时常用参数
5.1 安装路径和文件路径相关
-
--prefix=PATH
设置 nginx 的安装目录,默认为
/usr/local/nginx
-
--sbin-path=PATH
设置 nginx 可执行文件的路径,默认为
<prefix>/sbin/nginx
-
--modules-path=PATH
设置模块的安装路径
-
--conf-path=PATH
设置主配置文件
nginx.conf
的路径,默认为<prefix>/conf/nginx.conf
-
--error-log-path=PATH
设置错误日志文件的路径
-
--pid-path=PATH
设置存储主进程 PID 文件的路径,默认为
<prefix>/logs/nginx.pid
-
--lock-path=PATH
设置锁文件的路径
-
--http-log-path=PATH
设置 HTTP 访问日志文件的路径
-
--http-client-body-temp-path=PATH
存储客户端请求体临时文件的路径
-
--http-proxy-temp-path=PATH
设置存储代理临时文件的路径
-
--http-fastcgi-temp-path=PATH
设置存储 FastCGI 临时文件的路径
-
--http-uwsgi-temp-path=PATH
设置存储 uWSGI 临时文件的路径
-
--http-scgi-temp-path=PATH
设置存储 SCGI 临时文件的路径
5.2 用户和组相关
-
--user=USER
设置工作进程的非特权用户
-
--group=GROUP
设置工作进程的非特权用户组
5.3 编译和构建相关
-
--build=NAME
设置构建名称
-
--builddir=DIR
设置构建目录
-
--with-cc=PATH
指定 C 编译器的路径
-
--with-cpp=PATH
指定 C 预处理器路径
-
--with-cc-opt=OPTIONS
添加额外的 C 与编译器选项
-
--with-ld-opt=OPTIONS
添加额外的链接器选项
-
--with-cpu-opt=CPU
为特定 CPU 优化编译 (如
pentium
,athlon
等)
5.4 功能模块相关
HTTP 模块
-
--with-http_ssl_module
启用 HTTPS 支持 (SSL/TLS)
-
--with-http_v2_module
启用 HTTP/2 协议支持
-
--with-http_realip_module
启用获取真实客户端 IP 地址功能
-
--with-http_addition_modile
启用响应内容追加功能
-
--with-http_xslt_module
启用 XSLT 转化支持
-
--with-http_image_filter_module
启用图片过滤支持
-
--with-http_geoip_module
启用 GeoIP 支持
-
--without-http_<module>_module
禁用指定的 HTTP 模块 (如
charset
,gzip
,rewrite
等)
流媒体模块
-
--with-http_flv_module
启用 FLV 视频流支持
-
--with-http_mp4_module
启用 MP4 视频流支持
其他 HTTP 模块
-
--with-http_stub_status_module
启用状态监控模块
-
--with-http_gzip_static_module
启用静态文件 GZIP 压缩支持
-
--with-http_auth_request_module
启用认证请求模块
-
--without-http
禁用 HTTP 服务器功能
5.5 邮件代理模块
-
--with-mail
启用 POP3/IMAP4/SMTP 代理模块
-
--with-mail_ssl_module
启用邮件代理的 SSL/TLS 支持
-
--without-mail_<protocol>_module
禁用指定的邮件协议模块(如
pop3
,imap
,smtp
)
5.6 流量代理模块
-
--with-stream
启用 TCP/UDP 流量代理模块
-
--with-stream_ssl_module
启用流量代理的 SSL/TLS 支持
-
--with-stream_realip_module
启用流量代理的真实 IP 获取功能
-
--without-stream_<module>_module
禁用指定的流量代理模块
5.7 外部支持
-
--with-pcre
启用 PCRE 库支持 (正则表达式)
-
--with-pcre-jit
启用 PCRE JIT 编译支持
-
--with-zlib=DIR
指定 Zlib 库源码路径(用于压缩)
-
--with-openssl=DIR
指定 OpenSSL 库源码路径
-
--with-libatomic
启用 libatomic_ops 库支持(原子操作)
5.8 其他选项
-
--add-module=PATH
添加第三方静态模块
-
--add-dynamic-module=PATH
添加第三方动态模块
-
--with-compat
启用动态模块兼容性
-
--with-debug
启动调试日志
-
--with-threads
启用线程池支持
-
--with-file-aio
启用文件异步 I/O 支持
5.9 禁用功能
-
--without-http-cache
禁用 HTTP 缓存功能
-
--without-pcre
禁用 PCRE 库支持
-
--without-pcre2
不使用 PRCE2 库
6、编译
make && make install
7、软链接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
8、nginx相关命令
1.启动nginx: nginx
2.停止nginx:nginx -s stop
3.重启nginx:nginx -s restart
4.检查nginx配置文件是否正确:nginx -t
5.如果配置文件正确,可以使用以下命令重载nginx:nginx -s reload
重载配置文件会使nginx重新加载配置文件,而无需停止和启动整个服务器,这对于更新nginx配置文件中更改非常有用,因为它可以避免中断服务器的服务。