在Ubuntu 18.04上安装Nginx

时间:2020-02-23 14:41:05  来源:igfitidea点击:

NGINX的发音为engine-x是开放源代码和流行的HTTP服务器,可以配置为充当反向代理和负载平衡器。

与Apache相比,NGINX由于其基于事件和异步的体系结构,因此较少占用资源,并且可以处理大量并发请求。

尽管Apache在市场份额方面处于领先地位,但NGINX在过去几年中稳步发展。
在本文中,我们将探讨如何在Ubuntu 18.04上安装NGINX以及配置虚拟主机。

前提条件

您可以使用启用了root或者sudo的用户SSH进入Ubuntu 18.04系统。
如果您以root用户身份登录,则可以按原样运行命令。
如果您使用的是启用了sudo的命令,请在命令前加上" sudo"。

更新系统

在开始安装NGINX之前,始终建议您将Ubuntu 18.04升级到最新版本。
以下apt-get命令将为您完成此操作。

# apt-get update 
# apt-get upgrade

第一个命令将更新可用软件包及其版本的列表,第二个命令将实际安装您拥有的软件包的较新版本。

升级完系统后,请使用以下命令检查Ubuntu系统的发行版本。

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:        18.04
Codename:       bionic

在Ubuntu上安装NGINX

NGINX在Ubuntu的默认存储库中可用,并且可以通过单行命令安装,如下所示。

# apt-get install nginx

一旦安装了NGINX,它将自动运行。
您可以使用以下systemctl命令进行验证。

# systemctl status nginx
 ● nginx.service - A high performance web server and a reverse proxy server
 Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
 Active: active (running) since Tue 2019-02-12 09:12:08 UTC; 11s ago
   Docs: man:nginx(8)
Process: 17726 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 17714 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 17729 (nginx)
  Tasks: 2 (limit: 1152)
 CGroup: /system.slice/nginx.service
         ├─17729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
         └─17732 nginx: worker process

以上命令的输出将验证是否已加载NGINX并激活了PID为17729。

配置防火墙访问

您可能之前已在Ubuntu 18.04系统中启用了默认防火墙管理器UFW。
因此,您需要解锁80号端口,NGINX使用该端口号使用HTTP服务网页。

# ufw allow 80/tcp
# ufw reload

如果您打算在以后安装SSL证书来使用HTTPS,则也要打开端口号443。

# ufw allow 443/tcp
# ufw reload

现在将您喜欢的Web浏览器指向" https://SERVER_IP",您将看到NGINX欢迎页面。

另外,您也可以使用CURL命令验证相同的内容。
如果Nginx已启动并正在运行,则以下curl命令将获取索引页面的标题,否则将显示错误消息。
根据您的使用,调整与以下curl命令一起使用的IP地址。

# curl -I 13.234.46.76

管理NGINX服务

就像您对其他系统服务一样,管理NGINX服务非常容易。
以下部分将逐一列出每个NGINX systemd命令。

1.停止NGINX Server

要停止NGINX服务,请使用以下systemd命令:

# systemctl stop nginx

2.启动NGINX Server

使用以下命令再次启动NGINX:

# systemctl start nginx

3.重新启动NGINX服务器

要停止和启动NGINX服务,请使用:

# systemctl restart nginx

4.重新加载NGINX服务器配置

要重新加载NGINX服务而不断开连接,请使用:

# systemctl reload nginx

5.在启动时禁用NGINX自动启动

默认情况下,如我们先前所见,NGINX配置为在重新引导期间自动启动。
要禁用此行为,请使用以下命令:

# systemctl disable nginx

5.在启动时启用NGINX自动启动

要使NGINX在重新启动期间自动启动,请使用:

# systemctl enable nginx

将虚拟主机添加到NGINX服务器

NGINX服务的默认页面的配置文件可以在/etc/nginx/sites-available位置找到,并且文件名必须是默认的。
编辑此文件可为您的默认站点添加更多配置选项。
但是我们有兴趣添加虚拟主机。

要添加虚拟主机,请导航到/etc/nginx/sites-available文件夹。
这是NGINX服务器块的默认位置。
使用您喜欢的编辑器来创建一个这样的服务器块,即在所述位置的虚拟主机。

# cd /etc/nginx/sites-available
# cat wordpress.conf
 server {
      listen 80;
      root /var/www/html/wordpress;
      index index.html;
      server_name example.theitroad.local;
}

上面的虚拟主机使用服务器名称作为example.theitroad.local,将此名称更改为您的域。
现在,按照上述服务器块为站点创建根目录,并将文件夹的所有权更改为NGINX所有者,即www-data。

# mkdir -p /var/www/html/wordpress
# chown -R www-data:www-data /var/www/html/wordpress

要激活服务器块,请在/etc/nginx/sites-enabled文件夹中创建上述虚拟主机配置文件的符号链接。

# cd /etc/nginx/sites-enabled
# ln -s ../sites-available/wordpress.conf .

最后创建一个索引页面:

# cd /var/www/html/wordpress
# echo "This page is served from the domain example.theitroad.local" > index.html

重新加载NGINX的新设置:

# systemctl reload nginx

使用curl命令来验证NGINX是否正在为新域提供索引页面:

# curl example.theitroad.local
This page is served from the domain example.theitroad.local

上述CURL命令的输出将验证NGINX是否正在为域example.theitroad.local提供索引页,从而验证上述虚拟主机配置的正确性。