如何在Ubuntu 12.04 LTS上设置nginx虚拟主机(Server块)

本教程将向您介绍如何设置新目录,如何授予正确的权限,如何向新页面添加内容,如何启用虚拟主机以及如何设置本地主机(如果需要)。虚拟主机用于运行多个web

关于虚拟主机

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

建立

本教程中的步骤要求用户在虚拟专用服务器上具有root权限。你可以看到如何设置了在初始服务器设置教程第3步和4,另外,如果我在步骤引用用户,我将使用名称WWW。你可以实现任何适合你的用户名。 此外,您需要在您的VPS上安装nginx。如果不是这样,您可以使用此命令下载:
sudo apt-get install nginx

第一步 - 创建一个新目录

创建虚拟主机的第一步是创建一个目录,我们将保留新网站的信息。 此位置将是以后在nginx虚拟配置文件中的文档根。通过在代码行中添加-p,命令会自动生成新目录的所有父代。
sudo mkdir -p /var/www/example.com/public_html
你需要指定一个实际的DNS域批准 ,或IP地址,来测试虚拟主机正在工作。在本教程中,我们将使用example.com作为正确域名的占位符。 但是,如果您想使用未经批准的域名来测试该过程,您将在第六步中找到有关如何使其在本地计算机上工作的信息。

第二步 - 授予权限

我们需要将目录的所有权授予适当的用户,而不是仅仅保留在根系统上。您可以用适当的用户名替换下面的“www-data”。
sudo chown -R www-data:www-data /var/www/example.com/public_html
此外,重要的是要确保每个人都能够读取我们的新文件。
sudo chmod 755 /var/www
现在你都完成了权限。

第三步 - 创建页面

我们需要在我们之前创建的目录中创建一个名为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
保存并退出

第四步 - 创建新的虚拟主机文件

下一步是创建一个包含所有虚拟主机信息的新文件。 nginx在sites-available目录(/ etc / nginx / sites-available)中为这个文件提供了一个布局,我们只需要将文本复制到一个新的自定义文件中:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com

第五步 - 设置虚拟主机

打开新的虚拟主机文件 - 您将看到在其中设置虚拟主机所需的所有信息。
 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地址
您不需要对此文件进行任何其他更改。保存并退出。 最后一步是通过在sites-available目录和sites-enabled目录之间创建符号链接来激活主机。在apache中,完成此操作的命令是“a2ensite” - nginx没有同等的快捷方式,但它是一个容易的命令。
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
要避免“冲突的服务器名称错误”并确保转到您的网站显示正确的信息,您可以删除默认的nginxServer块:
sudo rm /etc/nginx/sites-enabled/default

第六步 - 重新启动nginx

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

可选第七步 - 设置本地主机

如果您已将域名指向服务器的IP地址,则可以跳过此步骤,而不需要设置本地主机。您的虚拟主机应该工作。但是,如果想要尝试新的虚拟主机而无需连接到实际的域名,您可以单独在您的计算机上设置本地主机。对于这一步,确保你在计算机本身,而不是你的Droplet。 要继续此步骤,您需要知道计算机的管理密码,否则将需要使用实际的域名来测试虚拟主机。 如果你是一个Mac或Linux上,访问根用户( su在计算机上),并打开你的hosts文件:
nano /etc/hosts
如果你是在Windows计算机上,你可以找到方向改变主机上的文件, 微软网站 您可以将本地主机详细信息添加到此文件,如下面的示例所示。只要该行在那里,将您的浏览器指向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地址(即http://12.34.56.789) 它应该看起来有点像我的得心应手截图

创建更多虚拟主机

要添加更多虚拟主机,您只需重复上述过程,小心地使用适当的域名设置新的文档根目录,然后创建和激活新的虚拟主机文件。

查看更多

一旦您设置了虚拟主机,就可以继续为您的网站建立一个SSL证书安装FTP服务器
Etel Sverdlov