在Ubuntu 20.04上从源码构建NGINX

NGINX是由俄罗斯开发者Igor Sysoev于2004年10月4日创建的,他对Apache web服务器感到不满意,希望构建一个能够处理1万个并发连接的替代品,重点关注性能、高并发性和低内存使用。

现在NGINX服务器是世界顶级网站之一,尽管这种增长在很大程度上要归功于它的特性,但也因为NGINX相对易于入门。

在Ubuntu 20.04上有两种安装NGINX的方法

  1. 通过操作系统的内置软件包管理器。
  2. 通过从源码构建NGINX。

在本指南中,我们将在Ubuntu 20.04上从源码构建NGINX。

前提条件

要完成本指南,您需要在您的计算机上安装了Ubuntu 20.04服务器。我们将使用阿里云的 弹性计算服务(ECS) 实例进行演示。

步骤1 - 更新并安装NGINX的依赖项

为了从源码构建NGINX,我们首先需要安装一些NGINX的依赖项。

通过SSH终端登录到您的服务器。

ssh 用户名@您的IP地址

更新Ubuntu的软件包管理器。

sudo apt-get update

现在,安装开发库和源代码编译器。

sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev libgd-dev libxml2 libxml2-dev uuid-dev

按下 Y 并按下 Enter

步骤2 - 下载NGINX源代码并配置

我们现在拥有了编译NGINX所需的所有工具。

现在,我们需要从官方网站下载NGINX的源代码。

运行以下命令来下载源代码。

wget  http://nginx.org/download/nginx-1.20.0.tar.gz

现在我们有了NGINX源代码的tarball格式。我们可以使用以下命令来解压缩它。

tar -zxvf nginx-1.20.0.tar.gz

使用以下命令进入解压缩后的目录。

cd nginx-1.20.0

现在,我们需要使用configure标志来配置NGINX,使用以下命令。

./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --with-pcre  --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_image_filter_module=dynamic --modules-path=/etc/nginx/modules --with-http_v2_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module

在上面的命令中,我们使用自定义路径为NGINX配置文件、访问和错误日志路径以及一些NGINX模块进行配置。

步骤3 - 构建NGINX和添加模块

NGINX中有许多配置选项,您可以根据需要使用它。您可以通过访问 nginx.org 找到NGINX中的所有配置选项。

有一些模块在NGINX中预先安装。

默认内置模块

NGINX中预先安装了许多模块,如果您不需要默认内置的模块,可以在配置脚本上使用 --without-<MODULE-NAME> 选项来禁用它,例如:

./configure --without-http_empty_gif_module

编译NGINX源代码

在自定义配置完成后,我们现在可以通过以下命令编译NGINX源代码:

make

这会花费相当长的时间,一旦完成,

通过以下命令安装已编译的源代码。

make install

使用以下命令启动NGINX。

nginx

现在,我们已成功安装了NGINX。要验证这一点,可以使用以下命令检查NGINX的版本。

nginx -V

或者,您可以访问您的IP地址,以查看NGINX的欢迎页面。

http://您的IP地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PlhFxafV-1692588332459)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4a6a6f8e-6556-42e7-82fb-f21946fd0f49/b98a8969b7d8a861429dcd0d606c394100b8a65f.png)]

步骤4 - 添加NGINX服务

通过我们定制构建的NGINX,它会在HTTP端口80上工作并侦听。下一步是为NGINX配置系统服务。

更具体地说,我们将将NGINX添加为systemd服务,这是一种较新且更受欢迎的服务标准。

现在,在我们继续之前,请注意systemd仅从Ubuntu 15.04开始提供。

创建一个NGINX systemd单元文件,使用nano编辑器。

nano /lib/systemd/system/nginx.service

并粘贴以下脚本。

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

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

您可以根据自定义配置路径更改PID文件的位置。

现在,按下键 CTRL+X,然后按下 YEnter 键保存此文件。

使用以下命令通过systemd启动您的NGINX。

systemctl restart nginx

现在您可以使用Systemd管理NGINX。

您还可以使用以下命令检查NGINX的状态是否在运行。

systemctl status nginx

这会给我们一个非常有信息量的NGINX服务器状态输出。

步骤5 - 在启动时启用NGINX

现在,如上所述,systemd服务的另一个非常有用的功能是在系统启动时自动启动NGINX。目前,在关闭或重新启动此机器时,NGINX将不再运行。

显然,这对于一个特定的Web服务器来说不太好。

因此,要在启动时启用NGINX,运行以下命令。

systemctl enable nginx

因此,我们获得了一个启动的确认,为此服务创建了一个符号链接。

我们可以通过重新启动机器来测试这一点。

就是这样!

结论

在本指南中,我们已经在Ubuntu 20.04上从源码构建了NGINX。如果您想在NGINX上托管您的应用程序,您可以使用阿里云强大而又实惠的 弹性计算服务(ECS)


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值