客户机访问测试
基于端口的虚拟主机实现步骤
修改虚拟主机配置文件
root@localhost /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@a.com
DocumentRoot "/var/www/html/acom"
ServerName
ServerAlias
ErrorLog "logs/www.a.com.error_log"
CustomLog "logs/www.a.com.access_log" common
<Directory "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:8080>
//修改端口信息
ServerAdmin webmaster@b.com
DocumentRoot "/var/www/html/bcom"
ServerName
ServerAlias
ErrorLog "logs/www.b.com.error_log"
CustomLog "logs/www.b.com.access_log" common
<Directory "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
Listen 8080
//监听8080端口,写在主配置文件或虚拟主机配置文件都可以
[root@localhost /]# systemctl restart httpd
//重新加载httpd服务
强烈建议,修改端口信息的时候,千万不能修改为1~1024之间的端口,因为这些端口已经被系统服务使用!
客户机访问测试
虚拟目录实现步骤
[root@localhost httpd-2.4.25]# mkdir /yum
[root@localhost httpd-2.4.25]# echo "<h1></h1>" > /yum/index.html
//创建虚拟目录测试文件
[root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
//编写httpd服务主配置文件
…………
//省略部分内容
Alias /test "/yum"
//定义虚拟目录“/test”,物理路径为“/yum”
<Directory "/yum">
//定义目录访问权限
Options Indexes MultiViews FollowSymLinks
//固定格式,这项可以忽略
AllowOverride None
//固定格式。这项可以忽略
Order allow,deny //匹配顺序为先允许,后拒绝,这项可以忽略
Allow from all
//设置允许所有人访问,这项可以忽略
Require all granted //对这个目录给予授权
</Directory>
[root@localhost httpd-2.4.25]# systemctl restart httpd
//重新启动httpd服务
客户机测试访问
如果想针对虚拟目录开启身份验证
将上面的配置做如下修改:
[root@localhost httpd]# vim /usr/local/httpd/conf/httpd.conf
//修改httpd服务主配置文件
…………
//省略部分内容
Alias /test "/yum"
<Directory "/yum">
Options Indexes MultiViews FollowSymLinks
//固定格式可以省略
AllowOverride None
//固定格式可以省略
AuthName "test"
//定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示
AuthType Basic
//设置认证的类型,Basic为基本的认证
AuthUserFile /usr/local/httpd/user //设置用于保存用户账号、密码的认证文件路径
Require valid-user
//要求只有认证文件中的合法用户才能访问。valid-user表示所有合法用户
</Directory>
[root@localhost htdocs]# cd /usr/local/httpd/
[root@localhost httpd]# bin/htpasswd -c /usr/local/httpd/conf/123.txt xiaozhang
New password:
Re-type new password:
Adding password for user xiaozhang
[root@localhost httpd]# systemctl restart httpd
//重新启动httpd服务