如何在CentOS 6上设置nginx虚拟主机(Server块)

本教程将向您介绍如何设置虚拟主机。虚拟主机用于从单个服务器和IP地址运行多个网站或域。与nginx一起使用时,虚拟主机称为Server块。本教程包括设置ser

关于虚拟主机

虚拟主机用于从单个虚拟专用服务器运行多个网站或域。注意:根据nginx网站,虚拟主机被称为nginx上的Server块。但是,为了方便与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虚拟配置文件中的文档根。通过在代码行中添加-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
但是,最好在完成后从本地hosts文件夹中删除这些补充地址,以避免任何未来的混乱。

第七步 - 查看您的虚拟主机在操作

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

添加更多虚拟主机

要创建其他虚拟主机,您只需重复上述过程,小心地每次使用适当的新域名设置新的文档根。然后只需将新的虚拟主机信息复制并粘贴到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;
    }
}
作者Etel Sverdlov