Apache默认虚拟主机
一台服务器可以访问多个网站,每个网站都是一个虚拟主机
概念:域名(主机名)、DNS、解析域名、hosts
任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机
Apache的主配置文件/usr/local/apache2.4/conf/httpd.conf
下,网站的文件在
DocumentRoot "/usr/local/apache2.4/htdocs"
<Directory "/usr/local/apache2.4/htdocs">
主机域名在
ServerName www.example.com:80
但是,这样就有一个问题,一个配置了LAMP的linux服务器,只能跑一个网站。
要想跑多个网站,只能关闭主配置文件下的主机域名和网站文件后,做多个虚拟主机,而多个虚拟主机中的第一个被默认为默认虚拟主机。
在主配置文件下打开虚拟主机配置文件,主配置文件就失效了
在主配置文件下打开虚拟主机配置文件
[root@shuai-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
虚拟主机配置文件(/usr/local/apache2.4/conf/extra/httpd-vhosts.conf )
打开虚拟主机配置文件就能配置多个网站域名
[root@shuai-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/local/apache2.4/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
每一个VirtualHost都表示一个虚拟主机,每一个虚拟主机都对应一个域名
对虚拟主机配置文件做配置:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com //管理员的邮箱
DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com" //网站根目录
ServerName dummy-host.example.com //网站的域名
ServerAlias www.dummy-host.example.com //网站的别名
ErrorLog "logs/dummy-host.example.com-error_log" //错误日志
CustomLog "logs/dummy-host.example.com-access_log" common //访问日志
</VirtualHost>
定义一个网站的追主要的两个参数DocumentRoot,ServerName
写虚拟主机配置文件:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/abc.com"
ServerName abc.com
ServerAlias www.abc.com www.123.com
ErrorLog "logs/abc.com-error_log"
CustomLog "logs/abc.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.com www.example.com
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>
创建文件
[root@shuai-01 ~]# mkdir /data/wwwroot/
[root@shuai-01 ~]# mkdir /data/wwwroot/abc.com
[root@shuai-01 ~]# mkdir /data/wwwroot/111.com
编写网页文件
[root@shuai-01 ~]# vim /data/wwwroot/abc.com/index.php
<?php
echo "111.com";
?>
[root@shuai-01 ~]# vim /data/wwwroot/111.com/index.php
<?php
echo "111.com";
?>
检查配置文件有没有出错
[root@shuai-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
重新加载配置文件
[root@shuai-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
命令curl
作用:打开网页
选项:
-x 指定IP地址
[root@shuai-01 ~]# curl -x192.168.176.135:80 abc.com
abc.com