在windows系统环境下,我们要运行常见的网站一般都会使用apache作为web服务器,如果在服务器中只放一个网站,对于存储空间较大的服务器来说太浪费资源了,那么怎样在一个服务器中存放运行多个网站项目呢?
用apache配置一个网站,首先我们需要在安装的apche中修改配置文件.
打开conf文件夹下httpd.conf文件.
将 Include conf/extra/httpd-vhosts.conf前面的#号去掉.
然后修改conf/extra/文件夹下的httpd-vhosts.conf文件
将默认配置删除添加如下代码:
<VirtualHost *:80>
DocumentRoot "C:/wz1"
ServerName 一级域名
ServerAlias 带www的二级域名
# ErrorLog "logs/wz1-error.log"
# CustomLog "logs/wz1-access.log" common
<Directory "C:/wz1">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/wz2"
ServerName 一级域名
ServerAlias 带www的二级域名
# ErrorLog "logs/wz2-error.log"
# CustomLog "logs/wz2-access.log" common
<Directory "C:/wz2">
Require all granted
</Directory>
</VirtualHost>
其中VirtualHost *:80为匹配80端口,DocumentRoot设置每个站点的根目录,ServerName设置顶级域名,ServerAlias设置网站别名一般就是域名前面加上www,这样就可以为一个站点同时绑定加www与不加的两个域名.
在Directory代码段中设置根目录权限以及访问的一些规则,这里我们设置了允许所有用户访问该目录,如果未设置可能网站无法打开或403错误,当然我们也可以在代码上方添加一些其它设置:
如:
Options FollowSymLinks #Options设定
AllowOverride All #允许.htaccess规则覆盖Options设定
在apache服务器中,配置多个站点可以按照示例wz1与wz2站点的配置方法,复制VirtualHost代码段为多份,然后修改绑定的站点配置.
以上只是设置了80端口http的站点配置,如果需要设置配置多个https我们又该怎样配置呢?
在apache中,有着多种方式的配置示例文件,我们只需要将apache的配置文件httpd.conf代码中的:
模块:
LoadModule ssl_module modules/mod_ssl.so
与站点配置文件:
Include conf/extra/httpd-ahssl.conf
前面的#号去掉
然后修改conf/extra文件夹中httpd-ahssl.conf文件
<VirtualHost _default_:443></virtualhost>删除
添加代码:
<VirtualHost *:443>
SSLEngine on
ServerName 一级域名:443
ServerAlias 带www的二级域名:443
SSLCertificateFile "C:/ssl/public.crt"
SSLCertificateKeyFile "C:/ssl/key.key"
SSLCertificateChainFile "C:/ssl/chain.crt"
DocumentRoot "C:/wz1"
<Directory "C:/wz1">
Options Indexes Includes FollowSymLinks
Require all granted
</Directory>
</virtualhost>
其中SSLCertificateFile设置公共密匙,SSLCertificateKeyFile设置私人密匙,SSLCertificateChainFile设置通用密匙,还有一种配置为:
SSLCertificateFile "C:/ssl/public.crt"
SSLCertificateKeyFile "C:/ssl/key.key"
少了SSLCertificateChainFile的设置,是因为需要将SSLCertificateFile与SSLCertificateChainFile内容合在一起.
同http多个站点的设置方法一样,将<VirtualHost *:443>到</virtualhost>中的代码复制多份,然后修改ServerName、ServerAlias绑定的域名、SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile的ssl证书、DocumentRoot与Directory网站目录地址,然后保存重启apache即可完成多个站点以及域名的配置.
以上就是在win系统中,apache2.4配置多个不同站点项目与绑定的域名,为多个项目分别设置的http与https协议的方法.