如何使用 Nginx 配置多个域名来托管多个网站

本贴最后更新于 729 天前,其中的信息可能已经时移世易

当我们需要在一台服务器上托管多个网站时,Nginx 可以帮助我们实现此目的。Nginx 是一个开源的高性能 HTTP 和反向代理服务器,也可以用作负载均衡器和邮件代理服务器。在这篇博客中,我将向您展示如何配置 Nginx 以托管多个域名。

步骤 1:安装 Nginx

首先,我们需要安装 Nginx。在 Ubuntu 或 Debian 系统上,可以使用以下命令来安装:

sudo apt update sudo apt install nginx

如果你使用的是 CentOS/RHEL 系统,则可以使用以下命令来安装:

sudo yum update sudo yum install nginx

安装完成后,您可以通过访问 IP 地址来测试它是否正常工作。例如,如果您的服务器 IP 地址是 192.168.0.1,那么您可以打开浏览器并输入 "[http://127.0.0.1](http://127.0.0.1/)" 来测试是否成功。

步骤 2:创建网站根目录

接下来,我们需要创建每个网站的根目录。根据惯例,每个网站的文件应该位于 /var/www/ 目录下,并以相应的域名命名。例如,如果您要托管 example.comtest.com 两个网站,则应分别创建两个目录:

sudo mkdir /var/www/example.com sudo mkdir /var/www/test.com

步骤 3:配置网站

在这一步中,我们需要创建两个简单的 HTML 文件,并将其放入相应的网站根目录中。为了测试服务器是否正常工作,可以在这些文件中添加一些文本内容。

echo "Hello, this is example.com" | sudo tee /var/www/example.com/index.html echo "Hello, this is test.com" | sudo tee /var/www/test.com/index.html

步骤 4:创建 Nginx 配置文件

现在我们需要为每个网站创建一个 Nginx 配置文件。默认情况下,这些文件应放置在 /etc/nginx/sites-available/ 目录下。

在这个例子中,我们将使用 example.comtest.com 两个域名。在 /etc/nginx/sites-available/ 目录下创建两个配置文件:

  • /etc/nginx/sites-available/example.com.conf
  • /etc/nginx/sites-available/test.com.conf

然后通过以下命令来编辑 example.com.conf 文件:

sudo nano /etc/nginx/sites-available/example.com.conf

将以下内容添加到文件中:

server { listen 80; listen [::]:80; root /var/www/example.com; index index.html; server_name example.com www.example.com; location / { try_files $uri $uri/ =404; } }

该文件指定了监听端口、网站的根目录、默认页面名称以及网站的域名。如果您有多个域名,则可以在 server_name 指令中添加更多的域名。

接下来,编辑 test.com.conf 文件:

sudo nano /etc/nginx/sites-available/test.com.conf

将以下内容添加到文件中:

server { listen 80; listen [::]:80; root /var/www/test.com; index index.html; server_name test.com www.test.com; location / { try_files $uri $uri/ =404; } }

步骤 5:启用 Nginx 配置文件

现在,我们已经创建了两个 Nginx 配置文件。但是这些文件还没有被 Nginx 加载和启用。

为了启用这些配置文件,我们需要在 /etc/nginx/sites-enabled/ 目录下创建符号链接。通过以下命令来完成:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/test.com.conf /etc/nginx/sites-enabled/

步骤 6:测试 Nginx 配置

现在我们已经完成了所有的配置工作,接下来我们需要测试 Nginx 是否正常工作。

为了测试 Nginx,我们可以打开浏览器并输入 http://example.comhttp://test.com 来访问网站。如果一切正常,您应该能够看到先前创建的 HTML 文件中的文本内容。

如果您无法访问网站,则可能需要检查防火墙设置或 Nginx 配置文件中的语法错误。您可以使用以下命令来检查配置文件:

sudo nginx -t

如果存在语法错误,则将在终端上显示错误消息。如果没有错误,则会显示 “syntax is ok” 的消息。

步骤 7:重载 Nginx 配置

如果我们对 Nginx 配置进行了更改,则需要重新加载配置才能使更改生效。通过以下命令来重新加载 Nginx 配置:

sudo systemctl reload nginx

这将重新加载 Nginx 配置,使我们所做的更改生效。

结论

在本博客中,我们介绍了如何配置 Nginx 以托管多个域名。通过遵循这些简单的步骤,您可以轻松地在同一台服务器上托管多个网站,并确保它们都可以正常工作。

  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 3 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 606 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    43 引用 • 44 回帖 • 1 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    228 引用 • 476 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 252 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 174 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 248 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 766 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 4 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 3 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 192 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • 反馈

    Communication channel for makers and users.

    120 引用 • 906 回帖 • 280 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 120 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 114 回帖 • 171 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 1 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 403 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 5 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 5 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 15 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    326 引用 • 1395 回帖 • 1 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    125 引用 • 74 回帖
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 105 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    86 引用 • 165 回帖