如何在ubuntu 12.04上配置nginx虚拟主机

虚拟主机简介

利用虚拟主机技术可以在一个服务器上挂载多个网站
(注意:nginx官方把虚拟主机称为服务器块(server blocks), 但为了更好理解,我们在教程中就称虚拟主机。)

进行下面的操作需要有服务器的root权限,如果教程中提到用户,是指www-data,当然你可以选择适合你的用户名
此外,确定nginx已经成功安装在你的服务器上

如果没有安装,输入下面命令安装:
sudo apt-get install nginx

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

首先,我们需要新建一个目录,用来存放新服务器的文件

这个目录就是apache虚拟机配置文件中的Document Root(根文件目录),下面命令中的p参数可以自动新建不存在的上级目录。
sudo mkdir -p /var/www/example.com/public_html

确定你的域名可以正常解析DNS 或者有你服务器的ip址址,便于测试虚拟主机是否正常工作。教程中,我们使用example.com这个杜撰的域名作为例子

第二步 --- 文件属性权限设置

我们要把这个目录的归属权从root转给www-data,你可以改为你自己的用户名
sudo chown -R www-data:www-data /var/www/example.com/public_html
另外记住要设置目录权限为所有人可读
sudo chmod 755 /var/www
到此为止,目录权限就设置完了

第三步 – 创建html页面

我们在之前新那建的html目录建立一个index.html文件
sudo nano /var/www/example.com/public_html/index.html

加入下面的内容,这样就是为了测试虚拟主机时有点内容显示

<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Success: You Have Set Up a Virtual Host</h1>
</body>
</html>

保存退出

第四步 --- 新建虚拟主机配置文件

下一步就是创建一个文本文件,包含虚拟机的配置信息

在/ etc/nginx/sites-available/下面 nginx已经为我们准备了一个标准配置文件,我们只需要拷贝一份,重新命名就好了。
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;
}

  • 去掉”‘listen 80“这行的注释,让所有访问该站的流量都从80端口进入
  • 把root后面的目录改成我们事先创建的目录。如果这个没设置好,你就不能访问网页
  • 把服务器名称(server name)改成你自己的域名或ip地址。其它的不需要修改了

保存退出

最后一步就是创建一个虚拟链接,即在sites-enabled目录下建立一个虚拟链接(symbolic link)指到sites-available 目录下example.com配置文件:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com

第六步 – 重启nginx

所有该改的都改了,现在重新启动nginx,看下效果如何!
sudo service nginx restart

第七步(可选)-- 配置本地主机

如果你已经在网络注册商那把域名指向服务器了,那你可以跳过这步。这一步是为那些只想在本土机器上测试的朋友。

打开hosts文件
nano /etc/hosts
把下面的内容拷贝到/etc/hosts文件里,

# 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地址看下效果如何

按照上面的步骤,你还可以添加多个虚拟主机。

添加新评论

个人信息
评论内容
提交该页面即表示您接受Mollon的隐私政策