如何在CentOS6上设置nginx虚拟主机(服务器块)

来自菜鸟教程
跳转至:导航、​搜索

状态: 已弃用

本文介绍了不再受支持的 CentOS 版本。 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。

原因: CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) and no longer receives security patches or updates. For this reason, this guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本编写的指南。

以下 DigitalOcean 教程可能是有趣的,因为它概述了在 CentOS 7 服务器上设置 Nginx 服务器块:




关于虚拟主机

虚拟主机用于在单个虚拟专用服务器上运行多个网站或域。注意:根据 nginx 网站,虚拟主机在 nginx 上称为服务器块。 但是,为了便于与 Apache 进行比较,我将在本教程中将它们称为虚拟主机。

介绍

确保 nginx 已安装在您的 VPS 上。 如果不是,您可以通过 2 个步骤快速安装它。

安装 EPEL 存储库:

 su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm'

安装 nginx

yum install nginx

第一步——创建一个新目录

创建虚拟主机的第一步是创建一个目录,我们将在其中保存新网站的信息。

这个位置稍后将成为 Nginx 虚拟配置文件中的 Document Root。 通过在代码行中添加 -p,该命令会自动为新目录生成所有父目录。

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

您需要指定一个实际的 DNS 批准域或 IP 地址,以测试虚拟主机是否正常工作。 在本教程中,我们将使用 example.com 作为正确域名的占位符。

但是,如果您想使用未经批准的域名来测试该过程,您将在第六步中找到有关如何使其在本地计算机上运行的信息。

第二步——授予权限

我们需要将目录的所有权授予正确的用户,而不是仅仅将其保留在根系统上。 您可以用适当的用户名替换下面的“www”。

sudo chown -R www:www /var/www/example.com/public_html

此外,确保每个人都能阅读我们的新文件也很重要。

sudo chmod 755 /var/www

现在你已经完成了权限。

第三步——创建页面

我们需要在之前创建的目录中创建一个名为 index.html 的新文件。

sudo vi /var/www/example.com/public_html/index.html

我们可以在文件中添加一些文本,以便在站点重定向到虚拟主机时查看一些内容。

&lthtml&gt
  &lthead&gt
    &lttitle>www.example.com&lt/title&gt
  &lt/head&gt
  &ltbody&gt
    &lth1>Success: You Have Set Up a Virtual Host&lt/h1&gt
  &lt/body&gt
&lt/html&gt

保存并退出

第四步——设置虚拟主机

下一步是进入nginx配置文件本身。

sudo vi /etc/nginx/conf.d/virtual.conf

虚拟主机文件已经几乎完全设置在您的虚拟服务器上。 最后,只需匹配以下配置,根据需要修改服务器名称和文件位置:

#
# A virtual host using mix of IP-, name-, and port-based configuration
#

server {
    listen       80;
#    listen       *:80;
    server_name  example.com;

    location / {
        root   /var/www/example.com/public_html/;
         index  index.html index.htm;
    }
}

保存并退出。

第五步——重启nginx

我们对配置进行了很多更改。 重新启动 nginx 并使更改可见。

/etc/init.d/nginx restart

可选步骤六 - 设置本地主机

如果您一直使用实际域或 IP 地址来测试您的虚拟服务器,则无需设置本地主机。 但是,如果您使用不属于您的通用域,这将保证仅在您的计算机上,您将能够对其进行自定义。

对于此步骤,请确保您使用的是计算机本身,而不是您的 VPS。

要继续此步骤,您需要知道计算机的管理密码,否则您将需要使用实际域名或 IP 地址来测试虚拟主机。

假设您确实具有管理员访问权限(通过输入 su 并输入正确的密码获得),您可以在这里设置本地主机。

在本地计算机上,键入:

nano /etc/hosts

您可以将本地主机的详细信息添加到此文件中,如下例所示。 只要与 IP 地址和服务器名称一致,将您的浏览器指向 example.com 将为您提供您指定的相应 IP 地址的所有虚拟主机详细信息。

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost

#Virtual Hosts 
12.34.56.789    www.example.com 

但是,最好在完成后将这些编造的地址从本地主机文件夹中删除,以避免将来出现任何混淆。

第七步——查看您的虚拟主机的运行情况

完成虚拟主机设置后,您可以在线查看它的外观。 将浏览器指向您的域名或 IP 地址,您应该会看到页面显示“成功 - 您已设置虚拟主机”

添加更多虚拟主机

要创建其他虚拟主机,您只需重复上述过程,每次都要小心设置一个具有适当新域名的新文档根目录。 然后只需将新建的 Virtual Host 信息复制粘贴到 nginx Config 文件中即可,如下图

#
# A virtual host using mix of IP-, name-, and port-based configuration
#

server {
    listen       80;
#    listen       *:80;
    server_name  example.com;

    location / {
        root   /var/www/example.com/public_html/;
         index  index.html index.htm;
    }
}


server {
    listen       80;
#    listen       *:80;
    server_name  example.org;

    location / {
        root   /var/www/example.org/public_html/;
         index  index.html index.htm;
    }
}

埃特尔·斯维尔德洛夫