首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 Ubuntu 20.04 上设置 Nginx 服务器配置块

如何在 Ubuntu 20.04 上设置 Nginx 服务器配置块

作者头像
雪梦科技
发布2020-07-14 11:30:04
6.1K0
发布2020-07-14 11:30:04
举报
文章被收录于专栏:ITCoderITCoderITCoder

一个服务器配置块是一个 Nginx 指令,它定义了对于一个指定域名的设置,允许你在一个单机服务器上运行多个网站。对于每一个网站,你可以设置网站文件根目录(包含网站文件的目录),创建一个独立的安全策略,使用不同的 SSL 证书等等。

本文描述如何在 Ubuntu 20.04 上设置 Nginx 服务器块。

一、前提条件

在继续这个指南之前,请确保你满足了下面的前提条件:

  • 指向你公共服务器 IP 的域名
  • 在你的 Ubuntu 系统上安装了 Nginx
  • 以 root 或者其他有 sudo 权限的用户身份登录

在一些文档中,术语Server Blocks也被称为Virtual host。一个虚拟主机是一个 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文件在域名网站根目录下,在你通过浏览器访问域名时,它将展示出来。 /var/www/example.com/public_html/index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

因为上面的命令都是以 sudo 用户身份创建的,新创建的文件和文件夹都归属于 root。想要避免任何权限问题,将域名根目录文件夹以及文件夹下的文件归属修改为 Nginx 用户(www-data):

sudo chown -R www-data: /var/www/domain1.com

三、创建一个服务器块

在 Ubuntu 系统上,Nginx 服务块配置文件位于/etc/nginx/sites-available目录。他们也可以通过创建对/etc/nginx/sites-enabled目录的符号链接来启用,在 Nginx 启动时,将被读取该目录。

打开你的文本编辑器,并且创建下面的服务器配置块文件: /etc/nginx/sites-available/example.com

server {
    listen 80;

    server_name example.com www.example.com;

    root /var/www/example.com/public_html;

    index index.html;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
}
  • server_name: 匹配服务器配置块的域名
  • root: Nginx 用来提供服务域名的文件目录
  • access_logerror_log: 指定日志文件

配置文件可以命名为任何你想要的名字,但是通常情况下,我们最好使用域名名字。

想要启用新的服务器配置块文件,创建一个从文件到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 ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重新启动 Nginx 服务,使得修改生效。

sudo systemctl restart nginx

最后,验证服务器配置块是否按照预期正常运行,在你的浏览器中打开http://example.com,你将会看到下面这些:

四、总结

我们已经向你展示如何在一台 Ubuntu 服务器上创建 Nginx 服务器配置块,并且托管多个域名。你可以重复上面的步骤,并且为你的所有域名创建其他的服务器配置块。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年07月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前提条件
  • 二、创建文件结构
  • 三、创建一个服务器块
  • 四、总结
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档