6、主机别名
配置思路:
1、首先要能解析域名成 IP 可以是hosts和DNS的方法。
2、编写配置文件,注意配置文件的位置和干扰(注意其他的域名配置文件主配置文件)。
3、创建html下的网页根目录和文件。
首先写域名。编写hosts文件
[root@localhost conf.d]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.12.11 www.english.com
172.16.12.11 www.english1.com
[root@localhost conf.d]# ping www.english.com
PING www.english.com (172.16.12.11) 56(84) bytes of data.
64 bytes from www.english.com (172.16.12.11): icmp_seq=1 ttl=64 time=0.076 ms
64 bytes from www.english.com (172.16.12.11): icmp_seq=2 ttl=64 time=0.049 ms
试一下是否生效。
编写配置文件
[root@localhost conf.d]# cat /etc/httpd/conf.d/vhost-english.conf
NameVirtualHost *:80 //设置启动虚拟主机设置端口为80
<Directory "/www">
Require all granted
</Directory> //这个标签是确定目录的权限是否能访问 如果在Apache的默认路径 /var/www/html/下则默认生效,就不用写这个。如果不在Apache目录下,则需要指定出来,并确定权限。
<VirtualHost *:80>
DocumentRoot "/var/www/html/english" //指定网页的根目录
ServerName www.english.com //网页的域名
ServerAlias www.english1.com //网页的别名
</VirtualHost>
重新启动。
测试 用elinks软件进行测试:
[root@localhost conf.d]# elinks --dump http://www.english.com
hello english
[root@localhost conf.d]# elinks --dump http://www.english1.com
hello english
2个域名都访问到同一个内容,ok。
7、域名跳转
跳转可以将某一类的请求跳转到同一个服务器上,进而实现服务器的负载均衡。
配置思路:
1、确定域名都能被解析
2、编写配置文件,确定没有干扰,确定位置正确
3、创建对应的页面
4、重启系统
172.16.12.11 www.name.com
172.16.12.11 www.name1.com
hosts文件。
编写配置文件:
[root@localhost conf.d]# cat /etc/httpd/conf.d/name-re.conf
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/var/www/html/name"
ServerName www.name.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond ${HTTP_HOST} ^www.name1.com$
RewriteRule ^/(.*)$ http://www.name.com/$1 [R=301,L]
</IfModule>
# Other directives here
</VirtualHost>
创建根文件:
[root@localhost conf.d]# cat /var/www/html/name/index.html
hello name
测试 这个用的是curl 做测试
[root@localhost conf.d]# curl http://www.name.com
hello name
[root@localhost conf.d]# curl http://www.name1.com
hello name
ok。
8、屏蔽浏览器:
配置思路:
1、确定域名能被解析
2、编写配置文件,查看干扰。
3、创建相应的网页源文件和目录。
4、重启服务
就在配置文件里加上这两行就可以了,我限制的是出火狐的其他浏览器
RewriteCond expr "!(%{HTTP_USER_AGENT} =~ /Firefox/i)" [NC] //匹配火狐浏览器 后边的i是不区分大小写
RewriteRule ^/(.*)$ - [F] //禁止其他浏览器访问
curl -A这个选项可以选择用什么浏览器访问。
[root@localhost conf.d]# curl -A "firefox" http://www.name.com //火狐能访问
hello name
[root@localhost conf.d]# curl -A "chrome/1.0" http://www.name.com //谷歌报错 没有权限
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /.noindex.html
on this server.</p>
</body></html>
9、查看服务器状态。
[root@localhost conf.d]# cat info.conf
<Location /server-status>
SetHandler server-status
Require all denied
Require ip 172.16.12.1
Require ip 172.16.12.10
</Location>
然后直接输入 http://IP /server-status