阿里云虚拟主机搭建多个网站

网站搭建有3年多了,一直没有备案,最近备案成功,网站可以愉快地搭建在国内了,由于经费有限只能用得起阿里云虚拟主机,本文主要记录阿里云虚拟主机的基本建站操作,阿里云建站教程。

域名绑定

因为阿里云虚拟主机支持一个主机绑定多个域名,绑定后域名需解析生效,备案状态同时成功后才能正常访问。所以理论上来说我们可以用云虚拟主机搭建多个网站,首先绑定域名,绑定成功后,在强制HTTPS加密访问这一栏中选择开启。

证书的话在SSL证书(应用安全)可以看到,自己申请个人免费证书,申请完下载证书,国光这里下载的是其他证书。证书开启成功后效果如下:

域名解析

阿里云虚拟主机的底层是Apache实现网站解析的,知道这个我们可以利用.htaccess文件来灵活的解析域名。

解析2个静态网站

假设有两个域名 www.a.comwww.b.com ,静态网站的源码分别在云虚拟主机的根目录(htdocs)的 www_awww_b目录下。

首先需要在 / 目录建立 .htaccess 文件,内容如下:

# 开启Rewrite功能
RewriteEngine On

# 将 www.a.com 解析到 /www_a 目录
RewriteCond %{HTTP_HOST} ^(www.)?a.com$
RewriteCond %{REQUEST_URI} !^/www_a/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /www_a/$1
RewriteCond %{HTTP_HOST} ^(www.)?a.com$
RewriteRule ^(/)?$ www_a/ [L]

# 将www.b.com 解析到/www_b 目录
RewriteCond %{HTTP_HOST} ^(www.)?b.com$ 
RewriteCond %{REQUEST_URI} !^/www_b/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /www_b/$1 
RewriteCond %{HTTP_HOST} ^(www.)?b.com$ 
RewriteRule ^(/)?$ www_b/ [L]

之后分别在两个子目录 /www_a 和 /www_b 建立 .htaccess 文件,内容分别如下:

/www_a/.htaccess

RewriteEngine On
RewriteBase /www_a
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www_a/ [L]

/www_b/.htaccess

RewriteEngine On
RewriteBase /www_b
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www_b/ [L]

完成以上步骤,则可以实现 www.a.com 访问 www_a目录,www.b.com 访问 www_b目录。

伪静态的配置

国光的实际云虚拟主机的生产环境为大致如下:

网站 网站类型 网站目录
www.php.com PHP 开启了伪静态 htdocs
www.sqlsec.com Hexo 纯静态 Htdocs/sqlsec

htdocs/.htaccess

RewriteEngine On
RewriteBase /

# www.sqlsec.com 目录解析
RewriteCond %{HTTP_HOST} ^www\.sqlsec\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/sqlsec/
RewriteRule ^(.*)$ sqlsec/$1?Rewrite [L,QSA]\

# php伪静态
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]%

htdocs/sqlsec/.htaccess

RewriteEngine On
RewriteBase /

#只许绑定的域名访问
RewriteCond %{HTTP_HOST} !^www\.sqlsec\.com$ [NC]
RewriteRule (.*) https://www.sqlsec.com/$1 [L,R=301]

#对绑定目录下与 同名的目录的处理
RewriteCond %{REQUEST_URI} ^\/sqlsec\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]%

这样配置后就可以完美的处理好PHP的伪静态和Hexo 纯静态同时完美解析了

题外话

阿里云虚拟主机搭建网站的速度好快呀,国内的速度完爆阿里云的轻量云服务器,下面是相关速度展示图:

Ping检测

国内测速

下面来一个 阿里云虚拟主机阿里云轻量应用服务器的网站速度对比吧:

平均速度 将近10倍的速度差距呀,总的来说 备案把网站迁移到 国内 值!


文章作者: 国光
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 国光 !
 上一篇
XSS从零开始 XSS从零开始
XSS接触到现在也有不少时间了,但是以前却很少结合源码去分析为什么可以绕过,导致对XSS的理解很难更上一层楼,再加上网上相关的文章也零零散散,所以就有了系统的写一篇XSS文章的想法,本文会结合一些源码去分析XSS漏洞产生的原因。 前言这
2020-01-09
下一篇 
macOS pyenv入门使用记录 macOS pyenv入门使用记录
有时候开发需要在不同版本的Python中切换,这个时候就需要神器pyenv来简化我们的操作了。下面国光就来简单介绍一下入门操作,大道至简。 前言我们可以经常会问 Python2 还是 Pyton3 ??或者Python 3.6 还是 P
2019-12-17
  目录