在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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Ubuntu 20.04可以通过源码安装Nginx安装过程括依赖安装、配置目录、编译安装等步骤。下面是具体的安装过程: 1. 依赖安装: - 执行命令`sudo apt-get update`更新管理器。 - 执行命令`sudo apt-get install build-essential`安装编译工具。 - 执行命令`sudo apt-get install zlib1g-dev libpcre3-dev libssl-dev`安装Nginx所需的依赖库。 2. 配置目录: - 执行命令`sudo mkdir /etc/nginx`创建Nginx的配置目录。 - 执行命令`sudo mkdir /etc/nginx/conf.d`创建Nginx的额外配置目录。 - 执行命令`sudo mkdir /var/log/nginx`创建Nginx的日志目录。 - 执行命令`sudo mkdir /var/www/html`创建Nginx的默认网站根目录。 3. 编译安装: - 下载Nginx源码:在官方网站(https://nginx.org)上下载最新的稳定版本源码。 - 解压源码:执行命令`tar -zxvf nginx-xxx.tar.gz`解压源码。 - 进入源码目录:执行命令`cd nginx-xxx`进入源码目录。 - 配置编译选项:执行命令`./configure`配置编译选项。 - 编译并安装:执行命令`make && sudo make install`进行编译和安装。 4. 启动Nginx: - 执行命令`sudo nginx`启动Nginx服务。 5. 创建系统服务: - 执行命令`sudo vim /etc/systemd/system/nginx.service`创建Nginx的系统服务配置文件。 - 将以下内容复制到配置文件中: ``` [Unit] Description=Nginx HTTP Server After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /etc/nginx/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop [Install] WantedBy=multi-user.target ``` 6. 启动Nginx服务: - 执行命令`sudo systemctl start nginx`启动Nginx服务。 7. 查看Nginx日志: - 执行命令`sudo tail -f /var/log/nginx/error.log`查看Nginx的错误日志。 以上是在Ubuntu 20.04上通过源码安装Nginx的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值