Administrator
Published on 2025-04-10 / 4 Visits
0

在Linux系统上从源码编译Nginx并配置开机启动

#AI

在Linux系统上从源码编译Nginx,可按以下步骤操作:

1. 安装编译依赖

在编译Nginx之前,需要先安装必要的编译工具和依赖库。打开终端,执行下面的命令:

sudo apt update
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

2. 下载Nginx源码

你可以从Nginx官方网站下载最新的稳定版本。在终端中执行以下命令:

cd /tmp
wget http://nginx.org/download/nginx-1.24.0.tar.gz

这里下载的是1.24.0版本,你可以按需更换为其他版本。

3. 解压源码包

下载完成后,解压源码包:

tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

4. 配置编译选项

在编译之前,要对Nginx进行配置。可以使用./configure命令,并且根据需求添加不同的选项。以下是一个基本的配置示例:

./configure \
    --prefix=/usr/local/nginx \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module
  • --prefix:指定Nginx的安装目录。
  • --with-http_ssl_module:启用SSL模块,支持HTTPS。
  • --with-http_v2_module:启用HTTP/2协议支持。
  • --with-http_gzip_static_module:启用gzip静态压缩模块。
  • --with-http_stub_status_module:启用状态统计模块。

5. 编译并安装

配置完成后,就可以进行编译和安装了:

make
sudo make install

6. 配置环境变量(可选)

为了更方便地使用Nginx命令,你可以将Nginx的可执行文件路径添加到系统的环境变量中。编辑~/.bashrc文件:

echo 'export PATH=/usr/local/nginx/sbin:$PATH' >> ~/.bashrc
source ~/.bashrc

7. 启动Nginx

安装完成后,就能够启动Nginx服务了:

sudo /usr/local/nginx/sbin/nginx

8. 验证安装

在浏览器中输入服务器的IP地址,若看到“Welcome to nginx!”页面,就说明Nginx安装并启动成功了。

9. 管理Nginx服务

以下是一些常用的Nginx管理命令:

# 停止Nginx
sudo /usr/local/nginx/sbin/nginx -s stop

# 重新加载配置文件
sudo /usr/local/nginx/sbin/nginx -s reload

按照上述步骤操作,你就能在Linux系统上成功从源码编译并安装Nginx。

在Linux系统上设置Nginx开机自启,可借助systemd服务管理工具来实现。下面为你详细介绍具体步骤:

1. 创建Nginx的systemd服务文件

使用文本编辑器(例如vim)创建一个名为nginx.service的文件,路径为/etc/systemd/system/

sudo vim /etc/systemd/system/nginx.service

2. 编写服务文件内容

在打开的文件中输入以下内容:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

上述配置文件的解释如下:

  • [Unit]:描述服务的基本信息以及启动顺序。Description是服务的描述,After表示该服务要在哪些服务之后启动。
  • [Service]:定义服务的启动、停止、重载等操作。Type=forking表示服务以派生(fork)的方式启动;PIDFile指定Nginx的PID文件路径;ExecStartPre在启动服务前执行的检查命令;ExecStart启动服务的命令;ExecReload重载配置文件的命令;ExecStop停止服务的命令;ExecQuit优雅退出服务的命令;PrivateTmp=true表示使用私有的临时目录。
  • [Install]:指定服务在哪些运行级别下自动启动,WantedBy=multi-user.target意味着在多用户模式下自动启动。

3. 保存并退出文件

vim编辑器中,按下Esc键,然后输入:wq并回车,即可保存并退出。

4. 重新加载systemd管理器配置

执行以下命令让systemd重新加载配置文件:

sudo systemctl daemon-reload

5. 设置Nginx开机自启

执行以下命令将Nginx服务设置为开机自启:

sudo systemctl enable nginx.service

6. 验证开机自启设置

可以通过以下命令检查Nginx服务是否已设置为开机自启:

sudo systemctl is-enabled nginx.service

若输出enabled,则表明设置成功。

7. 启动Nginx服务

若Nginx服务尚未启动,可以使用以下命令启动它:

sudo systemctl start nginx.service

完成以上步骤后,Nginx就会在系统开机时自动启动。