如何在Debian 7上设置Nginx服务器块

当与nginx一起使用时,“虚拟主机”被称为“服务器块”,并允许用户从单个服务器/ IP地址运行多个网站/域。本教程中使用的内核是Debian 7:它将讨论如何设置一个新目录/ gr

服务器块

虽然nginx更喜欢术语“服务器块” - 这些只是虚拟主机,允许用户从单个VPS运行多个网站或域。 尽管我们将在本教程中使用nginx,但为了传统和与Apache的简单比较的目的,我们可以简单地将它们称为虚拟主机。

1)设置您的VPS

本教程中的步骤要求用户在虚拟专用服务器上具有root权限。 你可以看到如何设置了在初始服务器设置教程 (第3步和4)。 此外,我将在整个教程中引用“用户” - 随意用任何您想要的用户名替换。

你需要在你的VPS上安装nginx。 如果不是这样,您可以使用此命令下载:

sudo apt-get install nginx

*注意:您将需要指定一个实际的DNS域名批准或IP地址来测试虚拟主机正在工作。 在本教程中,我将简单地使用“example.com”来表示应该何时插入正确的域名。

2)创建一个新目录

有必要创建一个目录,您将保留新网站的信息。 此位置将是您以后的Apache虚拟配置文件中的文档根目录。

通过在代码行中添加-p,命令会自动生成新目录的所有父代。

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

3)您的VPS的权限

重要的是要记住将目录的所有权授予适当的用户。 如果未能这样做,它将保留在根系统上。 按照以下命令完成此操作:

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

这将不仅确保所有权属于正确的用户 - 第二个命令也保证每个人都能够读取您的新文件。

4)创建页面

本教程将使用nano编辑您的VPS上的配置文件。 通常,它比其他文本编辑器更容易使用; 然而,如果你喜欢另一个如vi,请随意使用任何一个。

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

sudo nano /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

保存并退出。

5)创建新的虚拟主机文件

下一步是创建一个包含所有虚拟主机信息的新文件。

方便的是,nginx在sites-available目录(/ etc / nginx / sites-available)中为这个文件提供了一个布局。 所有你需要的是将文本复制到一个新的自定义文件:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com

6)虚拟主机

打开新的虚拟主机文件 - 您将看到在其中设置虚拟主机所需的所有信息。

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

您需要进行几个简单的更改:

 server {
        listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

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

        # Make site accessible from http://localhost/
        server_name example.com;
}
  • 取消注释“监听80”,以便通过该端口进入的所有流量将被导向该站点
  • 更改根扩展名以匹配我们在第1步中创建的目录。 如果文档根目录不正确或不存在,您将无法设置虚拟主机
  • 将服务器名称更改为您的DNS已批准的域名,如果您没有域名,则可以使用您的IP地址

保存并退出。

最后,您需要通过在网站可用目录和云服务器上启用网站的目录之间创建符号链接来激活主机。 这是一个很容易跳过的步骤,因此请务必输入以下命令:

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

要避免“冲突的服务器名称错误”并确保转到您的网站显示正确的信息,您可以删除默认的nginx服务器块:

sudo rm /etc/nginx/sites-enabled/default

第六步 - 重新启动nginx

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

sudo service nginx restart

7)让我们上网

设置完虚拟主机后,在浏览器中输入您的域名或IP地址。 它应该显示一条消息,如:Success--您设置了一个虚拟主机

恭喜! 现在要在云服务器上添加其他虚拟主机,您可以简单地使用新的文档根/适当的域名重复上述过程。