前言
Nginx是一个高性能的Web服务器和反向代理服务器,它以高稳定性和低资源消耗著称。虽然大多数Linux发行版提供了Nginx的包管理器安装方式,但编译安装可以让你获取最新版本的Nginx,并且可以自定义配置以满足特定需求。
系统要求
-
操作系统:Linux(推荐使用主流发行版如CentOS、Ubuntu、Fedora等)。
-
编译工具:GCC编译器、Make工具。
-
磁盘空间:至少200MB的空闲磁盘空间。
-
内存:至少512MB的RAM。
环境准备
安装编译工具
确保你的系统已经安装了必要的编译工具。
sudo apt update # 基于Debian的系统
sudo apt install build-essential # 安装编译工具
sudo yum groupinstall 'Development Tools' # 基于RPM的系统
安装依赖库
Nginx编译需要一些依赖库,如PCRE、zlib和OpenSSL。
如果你想用HTTP/3 则需要将OpenSSL替换为BoringSSL或者其他支持HTTP/3的分支。
sudo apt install -y libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev # Debian/Ubuntu
sudo yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel # CentOS/RHEL
下载Nginx源代码
访问下载最新的稳定版本源代码,或者使用wget命令直接下载。
wget http://nginx.org/download/nginx-版本号.tar.gz
解压源代码
tar -zxvf nginx-版本号.tar.gz
cd nginx-版本号
配置编译选项
Nginx提供了丰富的编译选项,以下是一些常用的配置选项示例:
-
--prefix=PATH
:设置安装目录。 -
--with-http_ssl_module
:启用SSL模块。 -
--with-http_v2_module
:启用HTTP/2模块。 -
--with-http_realip_module
:启用RealIP模块。 -
--with-threads
:启用线程支持。 -
--with-file-aio
:启用异步文件I/O。 -
--with-http_stub_status_module
:启用stub_status模块。
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-threads \
--with-file-aio \
--with-http_stub_status_module
编译Nginx
使用make命令开始编译过程。
make
编译过程可能需要一些时间,取决于你的系统性能。
安装Nginx
编译完成后,使用make install命令将Nginx安装到系统。
make install
这将把Nginx安装到你通过--prefix
指定的目录。
配置Nginx
安装完成后,你需要配置Nginx。配置文件默认通常位于/usr/local/nginx/conf/nginx.conf
。
启动Nginx
使用以下命令启动Nginx:
sudo /usr/local/nginx/sbin/nginx
检查Nginx状态
使用以下命令检查Nginx是否成功启动:
sudo /usr/local/nginx/sbin/nginx -t
如果配置无误,Nginx将显示配置测试成功的消息。
设置软链接,将/usr/local/nginx/sbin/nginx
链接到/usr/local/sbin/nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
设置Nginx开机自启(推荐)
你可以创建一个systemd服务文件来管理Nginx的启动。
-
创建服务文件:
sudo nano /etc/systemd/system/nginx.service
-
写入以下内容:
[Unit]
Description=NGINX HTTP server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
-
启动并启用服务:
sudo systemctl start nginx
sudo systemctl enable nginx
本文来自投稿,不代表极客运维立场,如若转载,请注明出处:https://www.geeklinux.cn/jsjc/nginx/184.html