编译安装Nginx

编译安装Nginx

前言

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源代码

访问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的启动。

  1. 创建服务文件:

sudo nano /etc/systemd/system/nginx.service
  1. 写入以下内容:

[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
  1. 启动并启用服务:

sudo systemctl start nginx
sudo systemctl enable nginx

本文来自投稿,不代表极客运维立场,如若转载,请注明出处:https://www.geeklinux.cn/jsjc/nginx/184.html

(0)
geeklinux.cn的头像geeklinux.cn
上一篇 2024 年 7 月 26 日 下午4:56
下一篇 2024 年 7 月 26 日 下午9:46

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注