一、Apache的作用:
在web被访问时通常使用http://的方式
http:// | 超文本传输协议 |
---|
http:// 超文本传输协议提供软件:
Apache;nginx;stgw;jfe;Tengine
二、Apache的安装及启用:
更改Apache的服务端口:
关闭防火墙:
访问服务器的8080端口:
Apache的默认端口为80,上图默认防火墙关闭,selinux关闭。
若防火墙未关闭需要执行以下操作:
firewall-cmd --list-all | 查看火墙信息 |
---|---|
firewall-cmd --permanent --add-service=http | 在火墙中永久开启http访问 |
firewall-cmd --permanent --add-service=https | 在火墙中永久开启https访问 |
firewall-cmd --permanent --add-port=8080/tcp | 开启一个协议为tcp的8080端口 |
firewall-cmd --reload | 刷新火墙使设定生效 |
若selinux也未关闭的话,需要再执行以下操作:
semanage port -l l grep http | 查看系统是否给http开放有8080端口 |
---|---|
semanage port -a -t http_port_t -p tcp 8080 | 没有的话,需要手动添加 |
systemctl restart httpd | 最后重启Apache服务 |
三、Apache的基本信息:
服务名称 | httpd |
---|---|
配置文件 | /etc/httpd/conf/httpd.conf ##主配置文件 |
配置文件 | /etc/httpd/conf.d/*.conf ##子配置文件 |
默认发布目录 | /var/www/html |
默认发布文件 | index.html |
默认端口 | 80 #http 443 https |
用户 | apache |
日志 | /etc/httpd/logs |
四、Apache的基本配置 :
默认发布文件
编辑主配置文件,添加名为sk.html的发布文件:
默认访问顺序第一个,无sk.html时访问index.html
在发布目录下建立sk.html发布文件,内容自拟,并再次访问:
默认发布目录
更改默认发布目录为/westos/html/:
在默认发布目录下建立发布文件,内容自拟,并访问:
修改了默认发布路径之后,如果selinux是强制状态,需要修改现在默认发布路径的安全上下文,执行以下操作:
semanage fcontext -a -t httpd_sys_content_t ‘/westos(/.*)?’
restorecon -RvvF /westos/
systemctl restart httpd
五、Apache的访问控制:
基于客户端ip的访问控制
ip白名单:
更改主配置文件,
只允许172.25.254.107访问:
172.25.254.7的访问请求被拒绝:
IP黑名单:
更改主配置文件,
禁止172.25.254.107访问:
其余ip均可访问:
基于用户认证
编辑认证文件:
htpasswd -cm /etc/httpd/htpasswdfile 用户名 | 生成认证文件 |
---|
注意:当/etc/httpd/htpasswdfile存在那么在添加用户时不要加-c参数否则会覆盖源文件内容
AuthUserfile /etc/httpd/htpasswdfile | 指定认证文件 |
---|---|
AuthName “Please input your name and password” | 认证提示语 |
AuthType basic | 认证类型 |
Require user admin | 允许通过的认证用户 2选1 |
Require valid-user | 允许所有用户通过认证 2选1 |
设置只允许sk用户认证访问:
doudou用户添加了认证信息:
doudou用户认证不通过:
sk用户认证通过,成功访问:
更改主配置文件,允许所有用户通过认证:
注:需要清理浏览器缓存信息
六、Apache的虚拟主机:
创建虚拟用户的发布目录和发布文件内容;添加地址解析,即可通过域名访问:
更改虚拟主机的配置文件:
ServerName | 虚拟主机域名 |
---|---|
DocumentRoot | 指定默认发布目录 |
CustomLog | 指定日志存放位置 |
重启服务:
测试过程:
七、Apache的语言支持:
PHP语言
安装php,添加php发布文件内容如下,重启服务即可访问:
cgi语言
安装cgi语言的解释器:
创建cgi的发布目录
更改cgi的发布文件:
在http.conf中,定义的pl运行位置是/var/www/cgi-bin/,而现在,运行的位置变化了,需要重新说明:
访问一下:
八、Apache的加密访问:
安装加密插件
生成私钥
生成证书签名文件
生成证书
x509 | 证书格式 |
---|---|
-req | 请求 |
-in | 加载签证名称 |
-signkey | /etc/pki/tls/private/www.westos.com.key私钥 |
编辑/etc/hosts:
添加地址解析
编辑配置文件/etc/httpd/conf.d/ssl.conf:
添加私钥位置和证书位置
编辑配置文件/etc/httpd/conf.d/vhost.conf:
普通访问也会跳转至加密访问:
自拟发布文件内容
重启服务
九、squid 正向代理:
实验环境:
单网卡主机设定ip不能上网
双网卡主机设定ip1可以连接单网卡主机,设定ip2可以上网
实验效果
让单网卡主机不能上网但浏览器可以访问互联网页
双网卡主机:
安装squid
更改配置文件:
/etc/squid/squid.conf
在单网卡中选择
NetWork Proxy
172.25.254.7 3128
即可实现没有网络也可以访问互联网:
十、squid反向代理:
实验环境:
172.25.254.20 ##Apache服务器
172.25.254.30 ##squid,没有数据负责缓存
vim /etc/squid/squid.conf
http_port 80 vhost vport |vhost 支持虚拟域名 vport 支持虚拟端口
#当172.25.254.30的80端口被访问会从172.25.254.20的80端口缓存数据
cache_peer 172.25.254.20 parent 80 0 proxy-only
测试:
firefox http:/172.25.254.30
访问看到的是172.25.254.20上的数据