Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >linux中创建Nginx虚拟主机

linux中创建Nginx虚拟主机

作者头像
入门笔记
发布于 2022-06-02 09:09:03
发布于 2022-06-02 09:09:03
2K10
代码可运行
举报
文章被收录于专栏:入门小站入门小站
运行总次数:0
代码可运行

什么是虚拟主机?

如果你不确定虚拟主机是什么,让我解释一下。这是一个Apache HTTP Server 术语,然而,Nginx 用户也经常使用它。事实上,Nginx 的正确术语是 server block

虚拟主机是一种在单个服务器上托管多个域名的方法。

虚拟主机如何工作?

当你在服务器上启动像 Nginx 这样的 Web 服务器软件时,该 Web 服务器将自己绑定到一个或多个网络端口。通常用于将成为端口 80 和 443 的 Web 服务器。

现在,当计算机访问网站时,它将通过 Internet 向服务器发送请求,服务器将接收该请求。服务器要做的第一件事是查看请求发送到目标端口的端口。

接下来,它将使用该目标端口来确定将该信息转发到哪个应用程序。这意味着你的 Web 服务器只能有一个接收请求的应用程序。

但是,如果你想在同一 Web 服务器上托管两个不同的网站怎么办?服务器需要能够判断数据包何时进入请求网站。它需要能够知道正在请求哪个网站,以便知道要发回哪些信息。

无论请求哪个网站,服务器都不能仅使用端口号和目标端口来确定客户端尝试访问哪个网站。服务器要做的就是说我要向 Nginx 发送这个请求,然后 Nginx 必须从那里决定它要发回什么。

Nginx 有一个叫做server blocks的概念。服务器块实际上可以用于两种不同的事情。它们可用于根据请求的 IP 地址为不同的网站提供服务,也可用于根据正在使用的域名为不同的网站提供服务。

  • Nginx 虚拟主机是如何工作的

因此,当你输入网站名称时www.example.com,当服务器收到该名称时,Nginx 实际上可以查看请求的服务器名称的 HTTP 标头内部,然后根据其配置的虚拟主机,决定存储哪个目录网站文件,并根据服务器名称将正确的响应返回给客户端。

如何创建 Nginx 虚拟主机(服务器块)

我们可以在两个目录中创建和存储我们的虚拟主机配置文件。它们都位于/etc/nginx目录中。这两个目录的名称是sites-availablesites-enabled

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc/nginx/sites-available

定义单个虚拟主机(网站)的目录。请记住,Nginx 不会使用在此目录中找到的配置文件,除非它们链接到该 /etc/nginx/sites-enabled目录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc/nginx/sites-enabled

由 Nginx 主动提供服务的虚拟主机(网站)列表。

你可能想知道为什么我们需要两个目录来存储我们的虚拟主机文件?这样做的主要好处是我们可以在 Nginx 服务器上创建许多虚拟主机文件,但我们可以根据我们的要求启用它们。

现在,我们将创建虚拟主机文件以在 Nginx 服务器中托管具有多个域的多个站点。域名为 rumenz.comtooltt.com

1. 创建目录结构

我们需要做的第一件事是为每个虚拟主机创建一个目录来存储不同的网站内容。我们将这些目录放在其中 /var/www ,并以每个域名命名。

运行以下命令来创建目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mkdir -p /var/www/rumenz
sudo mkdir -p /var/www/tooltt

-p 上面命令中的 标志告诉 mkdir 在此过程中创建任何必要的父目录。

2. 为每个网站创建测试页面

接下来,出于演示目的,让我们index.html 在域的文档根目录中创建一个 文件,以便我们可以显示一些内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vim /var/www/rumenz/index.html
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Welcome to Website 1!</title>
    </head>
    <body>
        <h1>入门小站!</h1>
    </body>
</html>

现在对 tooltt.com 重复上述步骤。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vim /var/www/tooltt/index.html
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Welcome to Website 2!</title>
    </head>
    <body>
        <h1>tooltt.com!</h1>
    </body>
</html>

3.创建Nginx虚拟主机(Server Block)

要在sites-available目录中创建 Nginx 虚拟主机文件,请执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vim /etc/nginx/sites-available/rumenz.conf

需要注意的是,Nginx 虚拟主机配置文件可以任意命名,但通常情况下,使用域名是一个好习惯。

现在,将以下内容粘贴到你的虚拟主机文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;
    server_name  www.rumenz.com;
    root /var/www/rumenz;
    access_log /var/log/nginx/rumenz-access.log;
    error_log /var/log/nginx/rumenz-error.log;
}

为了让事情更清楚,让我们分解这个语法。以下是每个参数的含义:

  • listen: 指定 Nginx 服务器在哪个端口上侦听连接。
  • server_name: 在这里,我们匹配对我们域的请求。该指令包含我们要用于访问我们网站的域名列表。
  • root:我们存储网站文件的目录的位置。
  • error_log:我们存储此虚拟主机的所有错误日志的日志文件的完整路径。
  • access_log:我们存储此虚拟主机的所有访问日志的日志文件的完整路径。

现在我们可以使用我们的初始虚拟主机配置作为我们第二个文件的基础。只需复制它以创建一个新文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /etc/nginx/sites-available/rumenz.conf /etc/nginx/sites-available/tooltt.conf

打开新文件并调整它以匹配我们的第二个 ( tooltt.com) 域名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vim /etc/nginx/sites-available/tooltt.conf
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;
    server_name  www.tooltt,com;
    root /var/www/tooltt;
    access_log /var/log/nginx/tooltt-access.log;
    error_log /var/log/nginx/tooltt-error.log;
}

4. 启用 Nginx 虚拟主机(服务器块)

在测试之前我们需要做的最后一件事是启用虚拟主机。我们可以通过创建从文件到sites-enabled 目录的符号链接来做到这一点 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ln -s /etc/nginx/sites-available/rumenz.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/tooltt.conf /etc/nginx/sites-enabled/

如下图所示,这些文件现在已链接到sites-enabled目录中。

将 Nginx 配置文件链接到启用站点的目录中

在我们继续之前,让我们仔细检查一下是否有任何错别字。测试 Nginx 配置的正确语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nginx -t

最后,如果没有发现问题,重启Nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart nginx

5. 测试虚拟主机(可选)

为了测试 Nginx 虚拟主机,我们首先需要将我们的域名记录指向服务器的 IP 地址。在我们的例子中,服务器 IP 地址是192.168.122.101.

编辑/etc/hosts 文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/hosts
192.168.122.101 rumenz.com
192.168.122.101 tooltt.com

完成后保存并关闭文件。以这种方式进行将允许我们测试我们实际上并不拥有的域。

现在打开浏览器输入www.rumenz.comwww.tooltt.com。你将分别看到两个域的索引页面。

6. 禁用 Nginx 虚拟主机

要在 Nginx 中禁用虚拟主机,我们只需要删除我们在启用虚拟主机文件时创建的符号链接。例如,要禁用tooltt.com,我们只需要执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo rm -rf /etc/nginx/sites-enabled/tooltt.conf

要应用更改,我们必须重新启动 Nginx 服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart nginx
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

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

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

评论
登录后参与评论
1 条评论
热度
最新
text
text
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
AI智慧安防智能监控平台EasyCVR隔天设备录像播放失败是什么原因?该如何解决?
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC等视频流。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,可拓展性强、视频能力灵活。
TSINGSEE青犀视频
2023/10/23
2200
下级平台科达录像机级联接入EasyCVR出现字段报错是什么原因?
安防市场的不断高清化、智能化,推动了视频监控技术与监控平台的升级。智能化设备产生的海量数据,也促使平台朝着综合化、网格化、集成化方向的发展。EasyCVR具备较强的视频能力,可支持海量设备接入、汇聚与管理、视频实时监控、视频录像、云存储、回放与检索、智能告警、平台级联等功能。在级联功能上,只要下级平台支持国标GB28181协议,就能接入EasyCVR平台,实现资源的互通共享。
TSINGSEE青犀视频
2022/05/20
3270
EasyCVR设备管理查询中,检索可展示通道详细信息
EasyCVR视频融合云服务具备优秀的视频能力,可支持视频监控直播、云端录像、检索与回放、存储、平台级联、智能告警等功能,在场景应用上,可打造智慧工地、智慧园区、智慧农场、智慧码头等智能化监管平台。随着安防市场的不断升级,高清化、集成化、网格化也成为视频监控领域的发展方向,EasyCVR部署轻快、灵活性大、综合能力强等特点使其成为视频监控领域的主流需求平台。
TSINGSEE青犀视频
2022/04/14
6120
安防监控视频云存储平台EasyCVR页面播放卡顿的优化方法
视频监控平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放协议,包括:HLS、HTTP-FLV、WebSocket-FLV、WebRTC、RTSP、RTMP,并且支持对外分享。
TSINGSEE青犀视频
2023/11/21
2440
视频融合平台EasyCVR设备管理分页显示有异常,是什么原因?
EasyCVR视频融合云服务支持多协议、多类型设备的接入,包括国标GB/T28181、RTMP、RTSP/Onvif协议,以及厂家私有协议,如:海康SDK、大华SDK、海康Ehome等。平台可对前端接入的设备进行统一管理,并能支持采用设备树对设备进行分组、分级、用户与角色权限管理,可支持设备状态监测、云端运维等功能,实现对海量接入资源的集中控制与权限分配。
TSINGSEE青犀视频
2022/09/28
2460
视频融合云平台EasyCVR级联时出现报错“Error 1146",是什么原因?
EasyCVR具备强大的视频接入、汇聚与管理、视频分发、设备管理、用户及角色权限管理等能力。平台可提供的丰富的视频功能,包括:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、服务器集群、智能分析等。其中,平台级联是使用较多的功能之一,级联功能可支持通过国标GB28181进行上下级平台的连接,实现数据的互通共享、共用,打破各独立系统之间的数据孤岛现象,协助用户构建互联互通、开放共享的视频大数据平台。
TSINGSEE青犀视频
2022/09/28
3020
视频云存储EasyCVR平台国标接入获取通道设备未回复是什么原因?该如何解决?
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,可拓展性强、视频能力灵活,能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC等视频流。
TSINGSEE青犀视频
2023/11/22
1860
智慧安防视频监控系统EasyCVR平台突然运行异常,是什么原因?
随着互联网技术的发展与视频技术的进步,视频监控系统EasyCVR安防视频综合管理平台支持多类型设备、多协议方式接入,包括市场主流标准协议国标GB28181、RTMP、RTSP/Onvif协议等,以及厂家私有协议,如海康SDK、大华SDK、海康Ehome等。平台可兼容市面上绝大多数品牌的视频源设备,对外可分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。
TSINGSEE青犀视频
2023/10/11
2110
硬盘录像机NVR设备通过国标GB28181注册到EasyCVR,不显示注册信息是什么原因?
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。
TSINGSEE青犀视频
2023/10/16
3280
EasyCVR接入设备后播放FLV视频流,报错404是什么原因?
EasyCVR视频融合云平台视频能力丰富、兼容性强、开放度高,它能对多种终端(PC电脑、手机、平板、电子大屏等)分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流,在视频接入上也能支持市面上大多数的视频监控设备,可通过GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议进行接入。
TSINGSEE青犀视频
2022/05/23
5750
视频集中存储安防监控平台EasyCVR优化AI硬件接入时的通道显示异常问题
安防视频监控平台视频集中存储EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。
TSINGSEE青犀视频
2023/08/15
2060
EasyCVR级联后上级在线,请求播放显示端口不可达是什么原因?
EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲等,也具备接入AI智能分析的能力。
TSINGSEE青犀视频
2023/06/27
2010
EasyCVR播放HLS流出现报错404是什么原因?
EasyCVR平台支持多协议与多类型设备接入,具体包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等,能对外分发RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台既具备传统安防视频监控的能力,也能接入AI智能分析的能力,应用场景十分广泛。
TSINGSEE青犀视频
2023/06/20
3360
视频集中存储EasyCVR平台使用海康SDK,播放出现串流情况是什么原因?
视频监控平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码H.264、平台级联等。为了便于用户二次开发、调用与集成,我们也提供了丰富的API接口供用户使用。
TSINGSEE青犀视频
2023/11/21
2380
在Linux中使用curl访问EasyCVR页面,返回报错Unauthorized是什么原因?
EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲等,也具备接入AI智能分析的能力。
TSINGSEE青犀视频
2023/07/14
2660
海康最新版设备Ehome接入EasyCVR视频无法播放是什么原因?
EasyCVR平台可支持多协议、多类型的海量设备接入与分发,包括国标GB28181协议、RTMP、RTSP/Onvif等安防标准协议,以及厂家私有协议如海康ehome、海康SDK、大华SDK等。在前期的文章中,我们也提及过关于海康新推出的协议EHOME5.0的接入,具体可查看这篇文章:海康EHOME5.0协议无法成功注册EasyCVR平台的原因排查。
TSINGSEE青犀视频
2022/05/05
5770
EasyCVR接入设备后播放视频出现卡顿现象的原因分析及解决
EasyCVR平台支持多类型设备、多协议方式接入,包括市场主流标准协议国标GB/T28181、RTMP、RTSP/Onvif协议等,以及厂家私有协议,如海康SDK、大华SDK、海康Ehome等。平台可将接入的流媒体进行处理及分发,分发的视频格式包括RTSP、RTMP、FLV、HLS、WebRTC等。
TSINGSEE青犀视频
2022/07/28
6800
硬盘录像机通过SDK接入EasyCVR,报错error code[13]的原因分析及解决办法
EasyCVR视频融合云服务平台的设备接入方式十分广泛,可支持主流标准协议如GB28181、RTSP/Onvif、RTMP等,还能支持厂家的私有协议与SDK接入,比如海康Ehome、海康SDK、大华SDK等(更多SDK与私有协议也在持续拓展中)。在视频能力上,EasyCVR具备优秀的视频监控直播、云端录像、检索与回放、存储、平台级联、智能告警等功能,已经成为安防视频监控等行业的主流需求平台。
TSINGSEE青犀视频
2022/03/31
5050
AI智能安防视频EasyCVR平台接入国标硬件设备播放视频失败的原因排查与分析
EasyCVR视频融合云服务支持多协议、多类型的设备接入,并分发多格式的视频流,能覆盖全终端平台。EasyCVR能实现视频直播、云端录像、存储、检索及回看、平台级联等能力,可应用在多元化的安防视频监控场景中,如智慧水利、智慧工地、智慧社区、智慧校园、智慧仓储等等。EasyCVR平台电脑网页客户端支持单画面、多画面显示,用户可选择任意一路或多路视频观看,视频窗口数量1、4、9、16个可选。
TSINGSEE青犀视频
2022/03/25
5640
AI云边端协同EasyCVR设备录像下载失败是什么原因?
EasyCVR视频融合云服务支持多协议、多类型的设备接入,平台具备强大的视频汇聚与管理、数据分发、平台级联、设备管理等视频能力。基于云边端架构,EasyCVR具备很灵活的云边调度能力,解决视频监控领域中海量设备接入、边端资源异构、网络通信不稳定、统一运维管理复杂等问题。
TSINGSEE青犀视频
2022/11/09
1.1K0
推荐阅读
AI智慧安防智能监控平台EasyCVR隔天设备录像播放失败是什么原因?该如何解决?
2200
下级平台科达录像机级联接入EasyCVR出现字段报错是什么原因?
3270
EasyCVR设备管理查询中,检索可展示通道详细信息
6120
安防监控视频云存储平台EasyCVR页面播放卡顿的优化方法
2440
视频融合平台EasyCVR设备管理分页显示有异常,是什么原因?
2460
视频融合云平台EasyCVR级联时出现报错“Error 1146",是什么原因?
3020
视频云存储EasyCVR平台国标接入获取通道设备未回复是什么原因?该如何解决?
1860
智慧安防视频监控系统EasyCVR平台突然运行异常,是什么原因?
2110
硬盘录像机NVR设备通过国标GB28181注册到EasyCVR,不显示注册信息是什么原因?
3280
EasyCVR接入设备后播放FLV视频流,报错404是什么原因?
5750
视频集中存储安防监控平台EasyCVR优化AI硬件接入时的通道显示异常问题
2060
EasyCVR级联后上级在线,请求播放显示端口不可达是什么原因?
2010
EasyCVR播放HLS流出现报错404是什么原因?
3360
视频集中存储EasyCVR平台使用海康SDK,播放出现串流情况是什么原因?
2380
在Linux中使用curl访问EasyCVR页面,返回报错Unauthorized是什么原因?
2660
海康最新版设备Ehome接入EasyCVR视频无法播放是什么原因?
5770
EasyCVR接入设备后播放视频出现卡顿现象的原因分析及解决
6800
硬盘录像机通过SDK接入EasyCVR,报错error code[13]的原因分析及解决办法
5050
AI智能安防视频EasyCVR平台接入国标硬件设备播放视频失败的原因排查与分析
5640
AI云边端协同EasyCVR设备录像下载失败是什么原因?
1.1K0
相关推荐
AI智慧安防智能监控平台EasyCVR隔天设备录像播放失败是什么原因?该如何解决?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验