WEB网站(1)
一.apache作用和特点
1.作用
给用户提供网站服务
2.特点
开源成本低
稳定性强
支持动态网站和静态网站
安全性强
跨平台
模块化设计
二.常见的的网站服务端软件
1.IIS
windows平台使用
不支持跨平台
支持FTP和网站功能
图形化配置
模块化设计
2.apache
开源,免费
支持跨平台windows linux unix
安全性强,模块化设计
3.nginx
开源网站平台
支持网站.代理.缓存功能
支持静态网站
4.tomcat
开源java项目平台
发布用java语言编写的项目
三.apache版本
1.apache1.0
向下兼容
不支持数据加密
安全性差
2.apache2.0
功能多
安全性强
支持https协议进行数据证书加密
四.apache服务安装方式
1.rpm安装httpd服务
安装简单
功能不能定制
灵活性差
2.源代码安装
安装功能定制
灵活性强
可以移植到其他linux
五.安装和配置apache
依赖程序
yum -y install apr-* pcre-* lynx
yum -y install apr-1.4.8-5.el7.x86_64
yum -y install apr-devel-1.4.8-5.el7.x86_64
yum -y install cyrus-sasl-devel-2.1.26-23.el7.x86_64
yum -y install expat-devel-2.1.0-10.el7_3.x86_64
yum -y install libdb-devel-5.3.21-25.el7.x86_64
yum -y install openldap-devel-2.4.44-21.el7_6.x86_64
yum -y install apr-util-devel.x86_64 0:1.5.2-6.el7
yum -y install apr-util.x86_64 0:1.5.2-6.el7
yum -y install pcre-devel-8.32-17.el7.x86_64
yum -y install pcre-8.32-17.el7.x86_64
安装apache
1).检查系统是否安装了此程序
rpm -qa | grep httpd
2).挂载光盘
mount /dev/cdrom /mnt
3).解压缩到指定目录
tar zxvf /mnt/httpd-2.2.17.tar.gz -C /usr/src
4).进入到apache目录
cd /usr/src/httpd-2.2.17/
5)../configure 定制环境
./configure --prefix=/usr/local/httpd --enable-so --enable-charset-lite --enable-rewrite --enable-cgi
定制环境 安装位置 开启so动态模块 开启支持更多的字符 开启地址重写 开启支持脚步功能
6).编译安装apache
make && make install
2.配置apache服务
1).优化apache服务(将控制命令符号连接到/usr/local/bin/下)
ln -s /usr/local/httpd/bin/* /usr/local/bin/
2).生成系统服务(添加执行权限)
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
chmod +x /etc/init.d/httpd
3).修改apache服务控制文件
vim /etc/init.d/httpd
添加
#!/bin/sh
# chkconfig:35 80 21 //服务控制位管理apache 3 5 开机第80个开启的服务 关机第21个关闭的服务
4).将服务添加到系统服务(使systemctl能管理这个服务)
chkconfig --add httpd
5).设置httpd服务在系统运行级别3和5开机自动启动
chkconfig --level 35 httpd on
6).启动apache服务
systemctl start httpd
7).检测apache服务是否启动
netstat -anptu | grep 80
8).备份apache主配置文件
[root@centos01 ~]# cd /usr/local/httpd/conf/
[root@centos01 conf]# cp httpd.conf httpd.conf.bak
3.apache服务常见的目录和文件
1).apache的主配置文件
/usr/local/httpd/
bin cgi-bin conf error htdocs include lib logs man modules
执行程序 脚本 主配置文件 错误信息 网站根目录 函数 库 日志 帮助 加载apache模块
/usr/local/httpd/bin/ 管理apache服务的程序
/usr/local/httpd/conf/httpd.conf apache的主配置文件
/usr/local/httpd/logs/ apache的访问日志文件
/usr/local/httpd/htdocs/ apache网站服务根目录
/usr/local/httpd/cgi-bin/ apache支持脚本功能
/usr/local/httpd/logs/access_log apache成功日志
/usr/local/httpd/logs/error_log apache错误日志
2).apache主配置文件常见的内容
vim /usr/local/httpd/conf/httpd.conf
29 ServerRoot apache服务安装的位置
40 Listen apache服务监听的ip地址和端口 默认80
65 User daemon 管理apache服务的用户
66 Group daemon 管理apache服务的组
88 ServerAdmin apache错误发送的邮件地址
97 ServerName apache服务监听的域名和端口
104 DocumentRoot 网站服务的根目录
114
165
186 ErrorLog 错误日志位置
215 CustomLog 正确日志位置
388 Include conf/extra/httpd-vhosts.conf 虚拟主机配置文件位置
区域配置项
Options FollowSymLinks 控制选项,允许使用符合链接
AllowOverride nono 不允许暗含控制文件中的覆盖配置
Require all denied 禁止任何人访问此区域
定义/目录区域的结束
隐藏版本号
配置文件最后一行
ServerSignature off
httpd -t apachectl -t 检查主配置文件的错误
修改网站根目录和首页
mkdir /web
echo "www.httpd.com" > /web/123.html
vim /usr/local/httpd/conf/httpd.conf
#DocumentRoot "/usr/local/httpd/htdocs" 网站服务的根目录
DocumentRoot "/web"
#
DirectoryIndex index.html 123.html 网站的默认主页
修改监听端口.域名
vim /usr/local/httpd/conf/httpd.cof
#Listen 12.34.56.78:80
Listen 8081
#ServerName www.example.com:80
ServerName www.bdqn.com:8081
访问必须带端口
[root@centos01 ~]# lynx www.bdqn.com:8081
[root@centos01 ~]# lynx 192.168.100.10:8081
WEB网站(2)
一.apache的访问控制
1.apache的访问控制作用和特点
1).apache访问控制的作用
增强服务器的安全性
2).特点
支持网站访问限制
可以控制用户或主机访问网站
提升网站安全性
2.apache访问控制的类型
1).客户端访问限制
通过访问控制列表限制
2).配置身份验证
通过配置基本验证增强网站安全性
对访问网站用户进行身份验证
3.客户端限制的类型
1).Require限制
Require可以添加在
Require all granted 允许所有人访问
Require all denied 拒绝所有人访问
Require local 仅允许本地主机访问
Require [not] host 允许或拒绝主机访问
Require [not] ip 允许或拒绝ip访问
2).deny和allow访问限制
Order allow,deny 应用顺序先允许后拒绝
allow from all 允许所有
allow from hosts 192.168.100.100 允许主机192.168.100.100访问
deny from hosts 192.168.100.100 拒绝主机192.168.100.100访问
deny from all 拒绝所有
ststemctl restart httpd
4.配置身份验证访问apache网站
1).创建用户认证数据文件
htpasswd -c /usr/local/httpd/conf/.password hmx
2).添加用户授权配置
vim /usr/local/httpd/conf/httpd.conf
添加
Order allow,deny
allow from all
AuthName "benet.com" //受保护的领域名称
AuthType Basic //基本验证,开启身份验证(摘要验证Digest)
AuthUserFile /usr/local/httpd/conf/.passwd //身份验证数据库
Require valid-user //要求只有认证文件中的合法用户才能访问
htpasswd -c /usr/local/httpd/conf/.passwd admin
ststemctl restart httpd
二.虚拟主机
1.虚拟主机的类型
1).基于ip地址的虚拟主机
通过ip地址区分不同的虚拟主机
2).基于端口的虚拟主机
相同ip不同端口号
3).基于主机头(域名)的虚拟主机
相同ip相同端口号不同主机头区分不同的网站,主机头也被称为域名
2.配置虚拟主机
1).创建虚拟主机网站根目录
mkdir -p /var/www/benet.com/
mkdir -p /var/www/accp.com/
mkdir -p /var/www/bdqn.com/
2).创建虚拟主机网站主页文件
echo "www.benet.com" > /var/www/benet.com/index.html
echo "www.accp.com" > /var/www/accp.com/index.html
echo "www.bdqn.com" > /var/www/bdqn.com/index.html
3).在主配置文件中启用虚拟主机
vim /usr/local/httpd/conf/httpd.conf
40 Listen *:80
97 #ServerName *:80
387 #Virtual hosts
388 Inclue conf/extra/httpd-vhosts.conf
注释默认网站目录和配置
4).配置虚拟主机文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
添加
NameVirtualHost *:80
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
systemctl restart httpd
3. 配置基于ip地址的虚拟主机
1).创建虚拟网卡模拟多个不同ip网段,生成网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:1
cp ifcfg-ens33 ifcfg-ens33:2
2)更改新网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33:1
NAME=ens33:1
DEVICE= ens33:1
ONBOOT=yes
IPADD=192.168.100.110
NETMASK=255.255.255.0
vim /etc/sysconfig/network-scripts/ifcfg-ens33:1
NAME=ens33:2
DEVICE= ens33:2
ONBOOT=yes
IPADD=192.168.100.120
NETMASK=255.255.255.0
3)重启网卡
systemctl restart network.service
2).配置虚拟主机文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
#ServerAdmin [email protected] 故障邮件发给谁
DocumentRoot "/var/www/benet.com" 第一个虚拟主机的网站根目录
#ServerName www.benet.com 虚拟主机的域名
ErrorLog "logs/www.benet.com-error_log" 错误日志
CustomLog "logs/www.benet.com-access_log" common 正确日志
#ServerAdmin [email protected]
DocumentRoot "/var/www/accp.com"
#ServerName www.accp.com
ErrorLog "logs/www.accp.com-error_log"
CustomLog "logs/www.accp.com-access_log" common
重启服务
systemctl restart httpd
4. 配置基于端口的虚拟主机
1).配置虚拟主机文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
#ServerAdmin [email protected]
DocumentRoot "/var/www/benet.com"
#ServerName www.benet.com
ErrorLog "logs/www.benet.com-error_log"
CustomLog "logs/www.benet.com-access_log" common
#ServerAdmin [email protected]
DocumentRoot "/var/www/accp.com"
#ServerName www.accp.com
ErrorLog "logs/www.accp.com-error_log"
CustomLog "logs/www.accp.com-access_log" common
2)修改主配置文件,添加端口
vim /etc/local/httpd/conf/httpd.cof
Listen 80
Listen 8080
Listen 8181
重启服务
systemctl restart httpd
5. 配置基于域名的虚拟主机(添加DNS解析记录)
配置dns
1,挂载光盘
[root@centos01 ~]# mount /dev/cdrom /mnt/
2,安装dns服务
[root@centos01 ~]# yum -y install bind bind-chroot bind-utils
3,备份并清空主配置文件
[root@centos01 ~]# cp /etc/named.conf /etc/named.conf.bak
[root@centos01 ~]# echo "" > /etc/named.conf
4,修改主配置文件
[root@centos01 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
directory "/var/named/";
};
zone "benet.com" IN {
type master;
file "benet.com.zone";
};
zone "bdqn.com" IN {
type master;
file "bdqn.com.zone";
};
zone "accp.com" IN {
type master;
file "accp.com.zone";
};
5,写区域配置文件
[root@centos01 ~]# vim /var/named/benet.com.zone
$TTL 86400
@ SOA benet.com. root.benet.com. (
2020060501
1H
1M
1D
1W
)
@ IN NS centos01.benet.com.
centos01 IN A 192.168.100.10
www IN A 192.168.100.10
[root@centos01 ~]# vim /var/named/bdqn.com.zone
$TTL 86400
@ SOA bdqn.com. root.bdqn.com. (
2020060501
1H
1M
1D
1W
)
@ IN NS centos01.bdqn.com.
centos01 IN A 192.168.100.10
www IN A 192.168.100.10
[root@centos01 ~]# vim /var/named/accp.com.zone
$TTL 86400
@ SOA accp.com. root.accp.com. (
2020060501
1H
1M
1D
1W
)
@ IN NS centos01.accp.com.
centos01 IN A 192.168.100.10
www IN A 192.168.100.10
1).配置虚拟主机文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.100.10:80
#ServerAdmin [email protected]
DocumentRoot "/var/www/benet.com"
ServerName www.benet.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/www.benet.com-error_log"
CustomLog "logs/www.benet.com-access_log" common
#ServerAdmin [email protected]
DocumentRoot "/var/www/bdqn.com"
ServerName www.bdqn.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/www.bdqn.com-error_log"
CustomLog "logs/www.bdqn.com-access_log" common
#ServerAdmin [email protected]
DocumentRoot "/var/www/accp.com"
ServerName www.accp.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/www.accp.com-error_log"
CustomLog "logs/www.accp.com-access_log" common
2)修改主配置文件
vim /usr/local/httpd/conf/httpd.conf
ServerName 192.168.100.10:80
Listen 192.168.100.10:80
重启服务
systemctl restart httpd