在Ubuntu 18.04上安装Nginx
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提供索引页,从而验证上述虚拟主机配置的正确性。