阿里云的轻量应用服务器实现多站点配置

873 阅读2分钟

起因

为了贪图便宜和方便外网访问,选购了阿里云的轻量应用服务器。但官网默认只支持一个站点的访问,为了实现多站点访问,在网上找了许多方法,在此做个总结。

本次的多站点配置为多个域名访问不同的目录实现的,其实就是基于 Apache 的多站点配置。

服务器版本

我所选择的是最便宜的一款了,服务器为 CentOS 7.3,官方自带了 LAMP 6.1.0 软件,如下图是本次的实验配置。

第一步 绑定域名

首先确保已经在控制台进行了域名绑定,具体的绑定方法参考官方文档。

第二步 配置 Apache

远程登录服务器开始配置 Apache,Apache 的默认配置文件地址为  /usr/local/apache/conf/httpd.conf,输入如下命令进行编辑

vi /usr/local/apache/conf/httpd.conf

在配置文件中找到 Include conf/extra/httpd-vhosts.conf 下面这段,并将开头的 # 号删除,

这个操作的意思是启用 httpd-vhosts.conf 配置文件,多站点的配置之后就是要在这个文件中进行操作,所以要记住这个文件的位置,以方便接下来的操作。

接着继续查找 ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/home/www/logs/php-fpm.sock|fcgi://127.0.0.1/home/www/htdocs 这段,在开头加上 # ,如果已经添加可忽略。

第三步 配置多站点

编辑上面的这个 httpd-vhosts.conf 文件

vi /usr/local/apache/conf/extra/httpd-vhosts.conf

将默认的配置注释掉,方便配置错误时进行恢复。

每一个 VirtualHost 块为一个站点配置。

<VirtualHost *:80>
    ServerAdmin webmaster@serveradmin.com
    DocumentRoot "/home/www/htdocs/aaa"
    ServerName aaa.com
    ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/home/www/logs/php-fpm.sock|fcgi://127.0.0.1/home/www/htdocs/aaa/
</VirtualHost>

同时也可以为一个站点配置多个域名,在 ServerName 下添加一行 ServerAlias 域名用空格隔开,如下

<VirtualHost *:80>
    ServerAdmin webmaster@serveradmin.com
    DocumentRoot "/home/www/htdocs/aaa"
    ServerName aaa.com
    ServerAlias son.aaa.com ccc.com
    ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/home/www/logs/php-fpm.sock|fcgi://127.0.0.1/home/www/htdocs/aaa/
</VirtualHost>

重启服务

重启 Apache 后就可以在浏览器中查看效果了。

/usr/local/apache/bin/apachectl restart

总结

其实这个跟普通的 Apache 配置多站点是一样的,只是要注意一下域名的绑定要在阿里控制台进行,关于 Apache 更多的配置可参考官方文档。