一台云服务器配置两个网站
一台云服务器配置两个网站
最近一直在烦恼,一台云服务器怎么配置两个网站呢?我在本地的win10环境下配置apache的两个虚拟主机和两个ip可以成功的用不同的地址访问到不同的www下的目录。操作如图:
1:win下设置多个本地ip
2:修改win下的hosts文件
在C:\Windows\System32\drivers\etc\hosts,如图
3:修改apache的配置文件,或者修改httpd-vhosts.conf
1, 修改apache的httpd.conf,在httpd.conf末尾增加
<VirtualHost *:80>
ServerName liyuzhao
DocumentRoot G:/wamp64/www/cms
<Directory "G:/wamp64/www/cms">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName liyuzhao11
DocumentRoot G:/wamp64/www/wangyi
<Directory "G:/wamp64/www/wangyi">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
注意:cms是我的一个网址目录
重启apache,在浏览器上输入liyuzhao/或者liyuzhao11/即可访问到www下不同的网站目录。
经过以上的实验,问题又来了,我在阿里云上有个服务器,操作系统是centos7.1,里面放着我的博客网站,最近我想多放一个网站上去,但是又不想干掉我的博客网站,那怎么办呢?转换一下,需求就是一台服务器,可以让客户访问不同的网站。比如我输入liyuzhao.cn就访问我的博客,输入vr26.top就能访问到我的另一个网站。并且是在同一台云服务器。
明白了需求,开始动手了。
目前我现实了一种方法,那就是采用不同端口来进行访问,比如,liyuzhao.cn访问到我的博客,vr26.top:8080访问到我的另一个网站。操作如下:
1:首先编辑httpd.conf vi /etc/httpd/conf/httpd.conf
2:在末尾增加
<VirtualHost *:8080>
ServerName liyuzhao:8080
DocumentRoot /var/www/html/index1.php
<Directory "/var/www/html/index1.php">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
注意:上面的index1.php是我的一个测试文件,liyuzhao:8080改为*
3:在httpd.conf搜索Listen 80
在下面增加一行Listen 8080
4:保存重启apache systemctl start httpd.service
5:打开你的阿里云服务器控制台,配置安全组,如图
6:解析域名,绑定你的外网ip绑定到vr26.top 这个是我的域名~~~
7:输入liyuzhao.cn即可访问到我的博客,输入liyuzhao.cn:8080或者vr26.top:8080即可访问到index1.php
8:相信到这里你们应该懂了,把index1.php改为你的网站目录即可。
上面的这个方法是修改端口来实现一台云服务器通过两个网址访问到两个网站了。但是还不满足我的需求,我的需求是输入liyuzhao.cn就访问到博客,输入vr26.top就访问到另一个网站,直接默认80端口就能访问。
相信大家都了解域名解析吧,外网ip可以绑定多个域名,所以只有一个外网ip的话是实现不了上面的需求,因为不管输入liyuzhao.cn或者vr26.top都只能访问到我的同一个外网地址,这个外网地址在apache的httpd.conf配置里面设置为默认访问到/var/www/html的目录,所以不管怎么做,用默认的80端口,都只能访问一个web目录。虚拟主机的配置是无法实现这个需求。嘎嘎,那我们就用php代码来实现。
在html目录里面新建一个index.php,
输入:
<?php
//echo "<script>";
//echo "window.location.href='./boke/index.php/home/Xm/index' ";
//echo "</script>";
$host = $_SERVER['HTTP_HOST']; //获取url地址
$lyz_url = "www.liyuzhao.cn";
$lyz_url1 = "http://www.liyuzhao.cn";
$vr666_url = "www.vr666.ren";
$vr666_url1 = "http://www.vr666.ren"; //还有另一种可能
//对url进行判断
if($host == $lyz_url || $host == $lyz_url1){
header( "Location: /boke/index.php/home/Xm/index" ); //跳转到我的博客首页面
}elseif($host == $vr666_url || $host == vr666_url1){
header( "Location: /index1.php" ); //跳转到我的另一个网站首页,这个是我临时测试创建的
}
//TODO 其它的域名判断
?>
输入liyuzhao.cn即可访问到我的博客,输入vr666.ren即可访问到index1.php
完美的解决了我的需求。