【Linux】如何轻松架设Nginx服务器

Nginx,发音为 “engine x”,是一个开源的高性能 HTTP 和反向代理服务器。它负责处理一些互联网上最大网站的流量负载,可以作为独立的 web 服务器、负载均衡器、内容缓存,以及 HTTP 和非 HTTP 服务器的 反向代理 使用。

在 Nginx 中,服务器块(server block)是一种指令,用来定义特定域名的设置,这使得你可以在一台服务器上运行多个网站。对于每个网站,你可以设定站点文档根目录(存放网站文件的目录),创建独立的安全策略,使用不同的 SSL 证书等。

这篇文章会教你如何在 Ubuntu 22.04 上设置 Nginx 服务器块,让你了解如何在一个服务器上搭建多个网站,并根据你的需求定制每个网站的配置。

准备工作

开始之前,请确保满足以下条件:

  • 你的域名已经指向了服务器的公网 IP 地址。
  • 已经在你的 Ubuntu 系统上 安装了 Nginx。
  • 你以 root 用户或者有 sudo 权限的用户 登录到系统。

值得一提的是,在某些关于 web 服务器的文章中,“服务器块”也被称为“虚拟主机”。这是 Apache 中的一个术语。

创建目录结构

文档根目录是存储和响应请求时提供的域名对应的网站文件的地方。你可以将文档根目录设置为你想要的任何位置。在这个例子中,我们将使用如下目录结构:

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html

首先,为你的域名 创建根目录:

sudo mkdir -p /var/www/domain1.com/public_html

接下来,在域的根目录下创建一个 index.html 文件,当你在浏览器中访问该域名时,这个文件将会显示为默认页面。

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>欢迎来到 domain1.com</title>
  </head>
  <body>
    <h1>成功!domain1.com 的首页!</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/domain1.com

server {
    listen 80;

    server_name domain1.com www.domain1.com;

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

    index index.html;

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

配置文件的名字可以是你喜欢的任何名字,但通常最好用域名来命名。

为了启用新的服务器块文件,从该文件创建一个指向 sites-enabled 目录的 符号链接,Nginx 启动时会读取这个目录:

sudo ln -s /etc/nginx/sites-available/domain1.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://domain1.com,你应该会看到类似这样的页面:

Nginx 欢迎页面

总结

我们展示了如何创建 Nginx 服务器块,并在单个 Ubuntu 服务器上托管多个域名。你可以重复上述步骤,为所有域名创建额外的服务器块。现在,你已经掌握了在一台机器上运行多个网站的技能,是不是感觉超级棒呢?如果你有任何疑问或遇到困难,别忘了随时回来查阅这篇教程哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值