如何在Ubuntu 20.04上设置Nginx虚拟主机
server是Nginx的上下文context或者关键字。用于定义特定域的设置,从而使您可以在一台服务器上运行多个网站。 对于每个网站,您可以设置站点文档根目录(包含网站文件的目录),创建单独的安全策略,使用不同的SSL证书等等。
由于官方文档在写配置server的文档将server定义为server block,直接翻译为服务器块好像不适合,因此本教程将server认为是Nginx的上下文context或者关键字
本教程介绍了如何在Ubuntu 20.04上设置Nginx虚拟主机server上下文。包括创建nginx服务的根目录,创建server虚拟主机配置文件,验证虚拟主机配置文件语法的正确性,为server指定域名,日志文件目录。
先决条件
在继续之前,请确保您已满足以下要求:指向您的公共服务器IP的域名。在Ubuntu 系统上安装的Nginx。您以root或具有sudo权限的用户登录。在某些文章中,术语server上下文
被称为虚拟主机,虚拟主机是Apache术语。
创建目录结构
文档根目录是用于存储域名网站文件并响应请求的目录。 您可以将文档根目录设置为所需的任何位置。 在此示例中,我们将使用以下目录结构:
/var/www/├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
托管在服务器上的每个域的文档根目录都将设置为/var/www/<domain_name>/public_html
。在开始之前我们先为域创建目录:
sudo mkdir -p /var/www/domain1.com/public_html
我们还将在域文档根目录中创建一个index.html
文件,当您在浏览器中访问该域时会显示该文件:
由于上述命令是作为sudo用户执行的,因此新创建的文件和目录归root拥有。 为了避免权限问题,请将域文档根目录的所有权以及该目录中所有文件的所有权更改为Nginx www-data
用户,使用chmod命令:
sudo chown -R www-data: /var/www/domain1.com
创建server虚拟主机
在Ubuntu系统上,Nginx server服务器配置文件位于/etc/nginx/sites-available
目录中。 可以通过创建指向/etc/nginx/sites-enabled
目录的符号链接来启用它们。
你也可以直接/etc/nginx/sites-enabled
目录中创建服务器配置文件,在Nginx在启动过程中会读取它们。
使用你喜欢的编辑器创建/etc/nginx/sites-available/domain1.com文件。在本教程我们将使用vim创建文件:
sudo vim /etc/nginx/sites-available/domain1.com
复制粘帖以下内容到你的编辑器中:
server_name
指令用于设置域名。root
指令是Nginx在你指定域服务的根目录。access_log
与error_log
指定日志文件的位置。可以将配置文件命名为任意名称,但是通常最好使用域名。
要启用新的server虚拟主机配置文件,请从该文件创建指向sites-enabled
目录的符号链接,Nginx在启动期间会读取它:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
测试Nginx配置的语法是否正确:
sudo nginx -t
如果没有错误,输出将如下所示:
nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
重新启动Nginx服务,以使更改生效:
sudo systemctl restart nginx
最后,要验证Nginx虚拟主机是否按预期工作,请在您选择的浏览器中打开http://example1.com
结论
我们已向您展示了如何创建Nginx虚拟主机块并在一台Ubuntu服务器上托管多个域。 您可以重复上述步骤,并为所有域创建其它虚拟主机。如果您遇到任何问题,请随时发表评论。
以上是 如何在Ubuntu 20.04上设置Nginx虚拟主机 的全部内容, 来源链接: utcz.com/z/507549.html