基于ubuntu的apache的虚拟主机
2009-07-31 15:40
405 查看
一边查资料,一边把实验做完,决定把成果写出来,这可是下了很大的决心的,希望系统不要突然当机,如不幸被高手看见,请不要见笑,顺便帮忙解决下疑问。
概念应该是 虚拟主机那一块,大概描述下:
虚拟主机(Virtual Host)是指在一个机器上运行多个网络站点 (比www.company1.com和www.company2.com)。 如果每个网络站点拥有不同的IP地址,则虚拟主机可以是"基于IP"的; 如果只有一个IP地址,也可以是"基于主机名"的, 其实现对最终用户是透明的。
VM里ubuntu上有两个架设完成网站:一个基于Drupal的博客站点;一个是管理MySQL的phpmyadmin 目前打开它们的办法 是http://192.168.1.102/blog 和http://192.168.1.102/phpmyadmin
现在需要实现:
①两个站点通过不同的IP地址访问;
②两个站点通过不同的域名访问;
Ubuntu的本地IP是192.168.1.102
访问博客的IP地址为 192.168.1.10 域名为 myblog.promise.com
访问phpmyadmin的地址192.168.1.20 域名为phpmyadmin.promise.com
目前我的ubuntu只有一个IP地址,想实现不同IP对应不同站点,得先配置网卡IP别名
sudo nano /etc/network/interfaces
添加
auto eth0:1
iface eth0:1 inet static
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto eth0:2
iface eth0:2 inet static
address 192.168.1.20
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
记得重启网卡
sudo /etc/init.d/networking restart
如果直接基于IP的虚拟主机
编辑apache2的httpd.conf
sudo nano /etc/apache2/httpd.conf
加入如下
<VirtualHost 192.168.1.20>
ServerAdmin webmaster@phpmyadmin.com
DocumentRoot /var/www/phpmyadm/
ServerName phpmyadmin.promise.com
ErrorLog /var/log/apache2/apache2phpmyadmin_error_log
TransferLog /var/log/apache2/apache2phpmyadmin_access_log
</VirtualHost>
<VirtualHost 192.168.1.10>
ServerAdmin webmaster@myblog.com
DocumentRoot /var/www/blog/
ServerName myblog.promise.com
ErrorLog /var/log/apache2/myblog_error_log
TransferLog /var/log/apache2/myblog_access_log
</VirtualHost>
实际证明 只有IP地址和DocumentRoot起打开网站作用,servername貌似不起作用
如果是基于域名的虚拟主机
需要DNS:
sudo apt-get install bind9 dnsutils bind9-doc
注:只dns话,bind9即可,dnsutils是dns测试和排错工具,bind9-doc提供了bind9的文档
主要配置文件三个
/etc/bind/named.conf
/etc/bind/named.conf.options
/etc/bind/named.conf.local
这里不是研究DNS,就不细述了,这次只需改动named.conf.local即可
思路:
①需要添加正向区域“promise.com”和反向区域“1.168.192..in-addr.arpa”,
②在“promise.com”区域中添加A记录myblog对应10,添加A记录phpmyadmin对应20
③在“1.168.192.in-addr.arpa”区域中添加10对应myblog,20对应phpmyadmin
开始添加:
sudo nano /etc/bind/named.conf.local
添加
//正向
zone "promise.com"{
type master;
file "db.promise.com";
};
//反向
zone "1.168.192.in-addr.arpa"{
type master;
file "re/db.192.168.1";
};
注,文件没指出路径,默认路径为/var/cache/bind
Ctrl + O 保存 并CTRL+X 退出
创建刚才的正向和反向文件,不会?找个模板来抄(因为我就不会)
sudo cp /etc/bind/db.local /var/cache/bind/db.promise.com
sudo nano /var/cache/bind/db.promise.com
创建反向
sudo mkdir /var/cache/bind/re/
sudo cp /etc/bind/db.127 /var/cache/bind/re/db.192.168.1
sudo nano /var/cache/bind/re/db.192.168.1
重启bind9 :sudo /etc/init.d/bind9 restart
哦,对了,还有
sudo nano /etc/resolv.conf
得将服务器的dns指向自己,添加
search promise.com
nameserver 192.168.1.102
测试下
promise@ubuntu:~$ nslookup myblog.promise.com
Server: 192.168.1.102
Address: 192.168.1.102#53
Name: myblog.promise.com
Address: 192.168.1.10
promise@ubuntu:~$ nslookup phpmyadmin.promise.com
Server: 192.168.1.102
Address: 192.168.1.102#53
Name: phpmyadmin.promise.com
Address: 192.168.1.20
ok!
本机测试下……咦?为什么不行?
哦,别忘了给自己本机dns指向刚建立的dns服务器
OK!贴图纪念下
顺便说下,辛苦把文章写好了,结果,time out ,有得重新编辑一下,如果出错,可能第二次有点急了,还请见谅。
对本文有不同意见或疑问欢迎来讨论
我自己也有个疑问:如果我不是基于promise.com的子域名,而是
192.168.1.10指向www.myblog.com 和 192.168.1.20指向www.phpmyadmin.com的话
bind9该怎么设置?每次设置不是myblog.com能显示就是php那个不能显示,要么反之本文出自 “记录学习的点滴” 博客,转载请与作者联系!
概念应该是 虚拟主机那一块,大概描述下:
虚拟主机(Virtual Host)是指在一个机器上运行多个网络站点 (比www.company1.com和www.company2.com)。 如果每个网络站点拥有不同的IP地址,则虚拟主机可以是"基于IP"的; 如果只有一个IP地址,也可以是"基于主机名"的, 其实现对最终用户是透明的。
VM里ubuntu上有两个架设完成网站:一个基于Drupal的博客站点;一个是管理MySQL的phpmyadmin 目前打开它们的办法 是http://192.168.1.102/blog 和http://192.168.1.102/phpmyadmin
现在需要实现:
①两个站点通过不同的IP地址访问;
②两个站点通过不同的域名访问;
Ubuntu的本地IP是192.168.1.102
访问博客的IP地址为 192.168.1.10 域名为 myblog.promise.com
访问phpmyadmin的地址192.168.1.20 域名为phpmyadmin.promise.com
目前我的ubuntu只有一个IP地址,想实现不同IP对应不同站点,得先配置网卡IP别名
sudo nano /etc/network/interfaces
添加
auto eth0:1
iface eth0:1 inet static
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto eth0:2
iface eth0:2 inet static
address 192.168.1.20
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
记得重启网卡
sudo /etc/init.d/networking restart
如果直接基于IP的虚拟主机
编辑apache2的httpd.conf
sudo nano /etc/apache2/httpd.conf
加入如下
<VirtualHost 192.168.1.20>
ServerAdmin webmaster@phpmyadmin.com
DocumentRoot /var/www/phpmyadm/
ServerName phpmyadmin.promise.com
ErrorLog /var/log/apache2/apache2phpmyadmin_error_log
TransferLog /var/log/apache2/apache2phpmyadmin_access_log
</VirtualHost>
<VirtualHost 192.168.1.10>
ServerAdmin webmaster@myblog.com
DocumentRoot /var/www/blog/
ServerName myblog.promise.com
ErrorLog /var/log/apache2/myblog_error_log
TransferLog /var/log/apache2/myblog_access_log
</VirtualHost>
实际证明 只有IP地址和DocumentRoot起打开网站作用,servername貌似不起作用
如果是基于域名的虚拟主机
需要DNS:
sudo apt-get install bind9 dnsutils bind9-doc
注:只dns话,bind9即可,dnsutils是dns测试和排错工具,bind9-doc提供了bind9的文档
主要配置文件三个
/etc/bind/named.conf
/etc/bind/named.conf.options
/etc/bind/named.conf.local
这里不是研究DNS,就不细述了,这次只需改动named.conf.local即可
思路:
①需要添加正向区域“promise.com”和反向区域“1.168.192..in-addr.arpa”,
②在“promise.com”区域中添加A记录myblog对应10,添加A记录phpmyadmin对应20
③在“1.168.192.in-addr.arpa”区域中添加10对应myblog,20对应phpmyadmin
开始添加:
sudo nano /etc/bind/named.conf.local
添加
//正向
zone "promise.com"{
type master;
file "db.promise.com";
};
//反向
zone "1.168.192.in-addr.arpa"{
type master;
file "re/db.192.168.1";
};
注,文件没指出路径,默认路径为/var/cache/bind
Ctrl + O 保存 并CTRL+X 退出
创建刚才的正向和反向文件,不会?找个模板来抄(因为我就不会)
sudo cp /etc/bind/db.local /var/cache/bind/db.promise.com
sudo nano /var/cache/bind/db.promise.com
创建反向
sudo mkdir /var/cache/bind/re/
sudo cp /etc/bind/db.127 /var/cache/bind/re/db.192.168.1
sudo nano /var/cache/bind/re/db.192.168.1
重启bind9 :sudo /etc/init.d/bind9 restart
哦,对了,还有
sudo nano /etc/resolv.conf
得将服务器的dns指向自己,添加
search promise.com
nameserver 192.168.1.102
测试下
promise@ubuntu:~$ nslookup myblog.promise.com
Server: 192.168.1.102
Address: 192.168.1.102#53
Name: myblog.promise.com
Address: 192.168.1.10
promise@ubuntu:~$ nslookup phpmyadmin.promise.com
Server: 192.168.1.102
Address: 192.168.1.102#53
Name: phpmyadmin.promise.com
Address: 192.168.1.20
ok!
本机测试下……咦?为什么不行?
哦,别忘了给自己本机dns指向刚建立的dns服务器
OK!贴图纪念下
顺便说下,辛苦把文章写好了,结果,time out ,有得重新编辑一下,如果出错,可能第二次有点急了,还请见谅。
对本文有不同意见或疑问欢迎来讨论
我自己也有个疑问:如果我不是基于promise.com的子域名,而是
192.168.1.10指向www.myblog.com 和 192.168.1.20指向www.phpmyadmin.com的话
bind9该怎么设置?每次设置不是myblog.com能显示就是php那个不能显示,要么反之本文出自 “记录学习的点滴” 博客,转载请与作者联系!
相关文章推荐
- Ubuntu下Apache配置虚拟主机
- apache服务器基于ip以及基于端口的虚拟主机访问
- apache基于域名和端口的虚拟主机
- Apache中基于名字的虚拟主机服务
- 有SELinux引起的Apache基于端口的虚拟主机启动失败
- ubuntu 14.04设置Apache虚拟主机的方法
- Apache基于IP的虚拟主机本地配置
- 本地机apache配置基于域名的虚拟主机详解
- 在Ubuntu 14.04 LTS系统中设置Apache虚拟主机
- Apache虚拟主机(基于IP、基于端口、基于域名)
- ubuntu下apt-get安装apache的虚拟主机的配置
- Ubuntu Server 14.04 & Apache2.4 虚拟主机、模块重写、隐藏入口文件配置
- Apache2.4的虚拟主机配置(基于ip地址)
- 基于Apache在本地配置多个虚拟主机站点
- ubuntu下apache虚拟主机出现forbidden错误的解决办法
- ubuntu14.04如何设置Apache虚拟主机
- ubuntu下apache新建虚拟主机
- centos apache 基于域名的虚拟主机
- 使用apache配置基于IP地址的虚拟主机
- ubuntu apache 配置虚拟主机