Apache配置
1.默认虚拟主机
- 虚拟主机
- 配置
编辑httpd.conf搜索httpd-vhosts,去掉#号
Include conf/extra/httpd-vhosts.conf 前面#号去掉
修改内容为:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot “/usr/local/apache2.4/docs/abc.com”
ServerName abc.com
ServerAlias www.abc.com aaa.com
ErrorLog “logs/abc.com-error_log”
CustomLog “logs/abc.com-access_log” common
<VirtualHost *:80>
DocumentRoot “/usr/local/apache2.4/docs/111.com”
ServerName 111.com
ErrorLog “logs/111.com-error_log”
CustomLog “logs/111.com-access_log” common
其中//ServerAdmin指定管理员邮箱,
//DocumentRoot为该虚拟主机站点的根目录,
//ServaerName为网站的域名
//ServerAlias为网站的第二域名
//ErrorLog为站点的错误日志
//CustomLog为站点的访问日志
其中,
/usr/local/apache2.4/bin/apachectl -t //检查配置文件是否有错误
/usr/local/apache2.4/bin/apachectl graceful //graceful用于修改了配置文件后进行重新读取配置文件。
- 配置验证
验证成功。
2.用户认证
- 用户认证用来对某些目录中的网页进行访问控制,当用户访问这些页面的时候需要输入用户名和密码进行认证。
- 配置
修改并添加:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot “/usr/local/apache2.4/docs/abc.com”
ServerName abc.com
ServerAlias www.abc.com aaa.com
<Directory /usr/local/apache2.4/docs/abc.com>
AllowOverride AuthConfig
AuthName “abc.com user auth”
AuthType Basic
AuthUserFile /usr/local/apache2.4/docs/.htpasswd
require valid-user
ErrorLog “logs/abc.com-error_log”
CustomLog “logs/abc.com-access_log” common
其中
// 指定认证的目录
AllowOverride AuthConfig
// 这个相当于打开认证的开关
AuthName “testdomain.com user auth”
//自定义认证的名字,作用不大
AuthType Basic
//认证的类型,一般为Basic
AuthUserFile /data/.htpasswd
//指定密码文件所在位置
require valid-user
// 指定需要认证的用户为全部可用用户
//htpasswd为创建用户的工具,-c为create
//-m为指定密码加密的方式为MD5
.htpasswd为密码文件
ytl为创建的用户
//第二次不用加,否则密码文件会重置
# curl -xlocalhost:80 -u ytl:1 abc.com -I //1为设置的密码
- 配置验证
配置完可在Windows上访问地址www.abc.com,文件在C:\Windows\System32\drivers\etc\hosts。打开文件在最后一行输入:
#你的IP www.abc.com
接下来,关闭防火墙,设置selinux为Permissive(宽容模式,不会实际限制 domain/type 的存取)
# systemctl stop firewalld
# setenforce 0
然后,去浏览器访问www.abc.com或输入IP地址会有弹窗出现。
- 验证成功
3.域名跳转 - 当我们变更网站域名或者申多个域名指向一个网站的时候,这个时候我们就会用到域名跳转。
- 配置
设置不是以111.com开头的网站都跳转到111.com上。
RewriteEngine on// 打开rewrite功能
RewriteCond %{HTTP_HOST} !^111.com$ //定义rewrite的条件,当主机名不是111.com时满足条件
RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] //定义rewrite规则,RewriteRule后面分为三个部分&