Nginx发音为engine x,是开源的高性能HTTP和反向代理服务器,负责处理Internet上一些最大站点的负载。

它可用作HTTP和非HTTP服务器的独立Web服务器,负载均衡器,内容缓存和反向代理。与Apache相比,Nginx可以处理大量并发连接,并且每个连接的内存占用量更小。

在继续之前,请确保您以具有sudo权限的用户登录,并且端口80或443上没有运行Apache或其它监听80或者443端口的进程。

Nginx在默认的Ubuntu存储库中可用。要安装它,请使用apt命令运行以下命令,这将会更新软件包索引并且安装Nginx。

安装完成后,Nginx服务将自动启动。您可以通过运行systemctl命令查看服务的状态,从而确定Nginx服务是否正常启动。

sudo apt update
sudo apt install nginx
sudo systemctl status nginx

至此,Nginx已安装在您的Ubuntu计算机上。您可以使用systemd unit的方式管理Nginx服务

现在您已经在服务器上安装并运行了Nginx,您可能需要配置防火墙。打开HTTP协议的80端口和HTTPS协议443端口,允许来自这两个端口的连接。

如果您使用的是UFW防火墙管理工具,则可以通过启用Nginx Full配置文件来实现此目的,Nginx Full配置文件包含了80443两个端口的规则。

如你需要确定80443两个端口是否已打开,运行命令sudo ufw status查看结果。

sudo ufw allow 'Nginx Full'
sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

要测试已安装的Nginx,请在您的浏览器中打开http://YOUR_IP,您应该会看到默认的Nginx页面。

Nginx配置文件的结构和最佳做法

Nginx配置文件存储在/etc/nginx目录中。主要的Nginx配置文件为/etc/nginx/nginx.conf

虚拟主机配置文件存储在/etc/nginx/sites-available目录。仅当链接到/etc/nginx/sites-enabled目录时,Nginx才会使用此目录中的配置文件。

要激活虚拟主机,请从以下目录中的配置文件创建软链接。将sites-available目录中文件软移到sites-enabled目录。

要编写更具可维护性的代码,遵循标准命名约定是个好主意。例如,如果您的域名是mydomain.com,则配置文件应命为/etc/nginx/sitesavailable/mydomain.com.conf

/etc/nginx/snippets目录包含server上文的配置片段的文件。如果使用可重复的配置片段,则可以将这些指令重构为片段,并将片段文件include到server上下文中。

Nginx日志文件(access.logerror.log)位于/var/log/nginx/目录中。建议每个虚拟主机使用不同的accesserror日志文件。

您可以将域文档根目录设置为所需的任何位置。 Webroot的最常见位置包括/home/<user_name>/<site_name>/var/www/<site_name>

/var/www/html/<site_name>/opt/<site_name>

配置虚拟主机

如何在Ubuntu 20.04配置Nginx虚拟主机 | myfreax
server是Nginx指令,用于定义特定域的设置,从而使您可以在一台服务器上运行多个网站
Ubuntu 20.04 配置虚拟主机

配置Let's Encrypt SSL证书

如何在Ubuntu 20.04 Nginx配置Let’s Encrypt SSL证书 | myfreax
Web进行安全通信依赖于HTTPS,这需要使用数字证书,以便浏览器验证Web服务器的身份
Ubutu 20.04 配置Let's Encrypt SSL证书

mkcert创建本地SSL证书

如何使用mkcert创建SSL证书 | myfreax
您是否厌倦了在本地开发项目中使用不受信任的SSL证书?维护自己的证书颁发机构CA是一个痛苦的事情,这过程中需要用到神秘的程序和命令
mkcert创建本地SSL证书

安装PHP

如何在Ubuntu 22.04安装PHP | myfreax
PHP是最常用的服务器端编程语言之一。有着许多流行的CMS和框架,例如WordPress,Magento和Laravel都是用PHP编写的
ubuntu 20.04 安装 PHP 7.4
如何在Ubuntu 20.04安装PHP 8 | myfreax
PHP是使用最广泛的服务器端编程语言之一。有许多流行的CMS和框架,例如WordPress
ubuntu 20.04 安装 PHP 8.0
如何在Ubuntu 20.04安装PHP 8.1 | myfreax
PHP是使用最广泛的服务器端编程语言之一。有许多流行的CMS和框架,例如WordPress,Magento和Laravel都是用PHP编写的
Ubuntu 20.04 安装 PHP8.1

安装MySQL

如何在Ubuntu 20.04安装MySQL 8 | myfreax
MySQL是最流行的开源关系数据库管理系统。 它快速,易于使用,可扩展,并且是流行的LAMP和LEMP栈的组成部分
ubuntu 20.04 安装 MySQL

安装MariaDB

如何在Ubuntu 20.04安装MariaDB | myfreax
MariaDB由MySQL的原始开发人员和开源社区开发和维护。本指南介绍了如何在Ubuntu 20.04上安装和MariaDB
ubuntu 20.04 安装 mariadb

结论

我们已向您展示了如何在Ubuntu 20.04安装Nginx。 现在,您可以开始部署应用程序,并将Nginx用作Web或代理服务器。如果您有任何问题或反馈,请随时发表评论。