Apache服务器的搭建

1.Apache的作用

在web被访问时通常使用 http:// 的方式      ##  http:// 超文本传输协议

http:// 超文本传输协议提供软件:
Apache
nginx
stgw
jfe
Tengine

2.Apache的安装

先配置yum源,然后执行

dnf install httpd.x86_64 -y

3.Apache的启用

安装完成后访问ip无法访问:
在这里插入图片描述
所以应配置火墙:

systemctl  enable  --now  httpd     ##开启服务并设定服务位开机启动,企业7和8操作相同
在这里插入图片描述
firewall-cmd  --list-all         ##查看火墙信息
在这里插入图片描述

firewall-cmd --get-services      #查看服务名
在这里插入图片描述
firewall-cmd  --permanent --add-service=http      ##在火墙中永久开启http访问
firewall-cmd  --permanent  --add-service=https    ##在火墙中永久开启https访问
在这里插入图片描述
firewall-cmd  --reload               ##刷新火墙使设定生效
在这里插入图片描述
再次访问,成功
在这里插入图片描述

4.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

5.Apache的基本配置

1.Apache端口修改#
vim /etc/httpd/conf/httpd.conf
添加Listen 8080
在这里插入图片描述
在这里插入图片描述
端口更改成功。

扫描二维码关注公众号,回复: 10275122 查看本文章

firewall-cmd  --permanent  --add-port=8080/tcp   #添加端口
firewall-cmd --reload      #重新加载
在这里插入图片描述
访问成功。

但当我们吧端口改为6666时

vim  /etc/httpd/conf/httpd.conf

Listen 6666
在这里插入图片描述
在这里插入图片描述
当selinux开启时会报错。设置为警告模式时服务可以启动,且端口打开
在这里插入图片描述

firewall-cmd --permanent --add-port=6666/tcp
firewall-cmd --reload

在这里插入图片描述
semanage port -l | grep http     #查看允许的端口,发现无6666端口,有8888端口
在这里插入图片描述

semanage  port  -a  -t  http_port_t  -p  tcp  6666

加入6666端口
在这里插入图片描述
更改selinux为强制模式
重启服务,systemctl restart httpd
在这里插入图片描述
可以重启。更改成功

2.默认发布文件修改
编写index.html文件    #index.html为默认识别文件
在这里插入图片描述
用火狐浏览器查看:
在这里插入图片描述
出现相应内容。
创建 westos.html 文件:
在这里插入图片描述
在这里插入图片描述
必须在ip地址后面加上文件名才能够访问,这个是因为不是默认识别文件,如何更改那:

vim /etc/httpd/conf/httpd.conf

在这里插入图片描述
重启服务:

systemctl restart httpd

在这里插入图片描述
此时输入默认ip就可以访问到 westos.html 的内容了

3.默认发布目录

建立 /westos/html 目录,在里面建立 index.html 文件
在这里插入图片描述
无法访问,访问的是 /var/www/html/index.html 中的内容
在这里插入图片描述
更改默认发布目录 :

vim /etc/httpd/conf/httpd.conf


在这里插入图片描述
更改为
在这里插入图片描述
更改后依然无法访问,在这里插入图片描述
因为安全上下文和默认的 /var/www/ 目录不同,所以应该更改安全上下文和 /var/www/ 的相同

semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
restorecon -RvvF /westos/
systemctl restart httpd

firefox http://192.168.0.11
在这里插入图片描述
访问成功。

6.Apache的访问控制

#实验素材#

mkdir  /var/www/html/westos
vim  /var/www/html/westos/index.html

< h1 > westosdir’s page< /h1 >

在这里插入图片描述
可以访问。

#1.基于客户端ip的访问控制#

#ip白名单#
<Directory “/var/www/html/westos”>
Order Deny,Allow
Allow from 192.168.0.10
Deny from All
</Directory>
在这里插入图片描述
先读取Deny,在读取Allow,Order为顺序。
在这里插入图片描述
120主机访问允许。
在这里插入图片描述
110主机访问允许

#ip黑名单#
<Directory “/var/www/html/westos”>
Order Allow,Deny
Allow from All
Deny from 192.168.0.110
</Directory>
在这里插入图片描述
先读取Allow,后读取Deny
在这里插入图片描述
110主机访问不允许。
在这里插入图片描述
120主机访问允许

#2.基于用户认证#

vim /etc/httpd/conf/httpd.conf

<Directory “/var/www/html/westos”>
AuthUserfile  /etc/httpd/htpasswdfile            ##指定认证文件
AuthName “Please input your name and password”      ##认证提示语
AuthType  basic                     ##认证类型
Require  user  admin                  ##允许通过的认证用户 2选1
Require  valid-user                   ##允许所有用户通过认证 2选1

在这里插入图片描述

htpasswd  -cm  /etc/httpd/htpasswdfile  admin         ## -c 创建,生成认证文件
在这里插入图片描述
注意:
当 /etc/httpd/htpasswdfile 文件存在时那么在添加用户时不要加 -c 参数否则会覆盖源文件内容

在这里插入图片描述
已经创立两个用户,westos 和 admin,此时在访问的时侯会出现下面界面
在这里插入图片描述
要求你输入账号和密码,输入刚才建立的用户和密码就访问成功了。

在这里插入图片描述

7.Apache的虚拟主机

一个ip对应多个站点。

mkdir -p /var/www/westos.com/{news,wenku}      #建立虚拟主机目录
echo "wenku.westos's page" >/var/www/westos.com/wenku/index.html    #不同的目录主页输入不同的内容
echo "news.westos's page" > /var/www/westos.com/news/index.html     
echo "default westos's page" > /var/www/html/index.html          #默认主页

我们想让当:
访问 wenku.westos.com时看到 wenku.westos.com’s page
访问 news.westos.con时看到 news.westos.com’s page
访问 www.westos.com时看到 default westos’s page

vim /etc/httpd/conf.d/Vhost.conf    #编写配置文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功。

测试方法:
在浏览器所在主机中

vim /etc/hosts      #编写本地解析

192.168.0.120 www.westos.com wenku.westos.ocm news.westos.com
在这里插入图片描述
然后测试访问:
firefox http://www.westos.com
firefox http://wenku.westos.com
firefox http://news.westos.com

8.Apache的语言支持

#html#  默认支持

#php#

vim /var/www/html/index.php

在这里插入图片描述

dnf install php -y    #安装php
systemctl restart httpd  #重启服务

firefox http://192.168.0.11/index.php
在这里插入图片描述
进入默认访问页,则支持成功。

#perl / cgi#

vim /var/www/html/cgidir/index.cgi
chmod +x index.cgi

在这里插入图片描述
index.cgi 是一个执行脚本,给一个执行权限。
在这里插入图片描述
访问时:
在这里插入图片描述
看出代码没有执行,
编写配合文件,让Apache访问。并
在这里插入图片描述

setenforce 0
firefox http://192.168.0.11/cgidir/index.cgi

在这里插入图片描述

9.Apache的加密访问

首先在Apache服务器上安装 mod_ssl 插件

yum install mod_ssl -y

在 /etc/httpd/con.d/下会生成 ssl.conf 的配置文件
在这里插入图片描述
在这里插入图片描述
放我们访问https时需要添加我们的证书,点击advanced
在这里插入图片描述
点击Add Exception:
在这里插入图片描述
点击 Confirm:
在这里插入图片描述
就可以访问了,点击上面的锁,我们可以看到证书的内容:
在这里插入图片描述
但证书是默认的,不是我们自己的,先删除这个证书,那么如何去生成自己的证书那?:

openssl genrsa -out /etc/pki/tls/private/www.westos.com.key 2048   \#生成私钥 -out 输出至文件

在这里插入图片描述

openssl req -new -key /etc/pki/tls/private/www.westos.com.key \
-out /etc/pki/tls/certs/www.westos.com.csr            \#生成证书签证请求

在这里插入图片描述

openssl x509 -req -days 365 -in \
/etc/pki/tls/certs/www.westos.com.csr \
-signkey /etc/pki/tls/private/www.westos.com.key \
-out /etc/pki/tls/certs/www.westos.com.crt              \#生成证书

在这里插入图片描述
x509     证书格式
-req      请求
-in      加载签证名称
-signkey   指定签证key文件

编写配置文件,匹配证书位置:

vim /etc/httpd/conf.d/vhost.conf

在这里插入图片描述
再次访问
在这里插入图片描述
就是我们的证书了。

实验:

mkdir   /www/westos/{wenku,news,login}  -p
echo "wenku's page" > /www/westos.com/wenku/index.html
echo "news's page" > /www/westos.com/news/index.html
echo "login's page" > /www/westos.com/login/index.html
semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'      更改安全上下文
restorecon -RvvF /www/      刷新安全上下文
vim  /etc/httpd/conf.d/vhost.conf       编写配置文件

在这里插入图片描述尝试访问:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

发现 login.westos.com 访问的页面是默认页面,不是他自己的内容,因为他默认访问80端口,而我们要访问443端口,我们可以上方地址栏输入 https://login.westos.com 然后下载证书访问,那如何用配置文件方式开启网页重写功能,让它自动跳转到https :

vim /etc/httpd/conf.d/vhost.conf

在这里插入图片描述
^(/.*)$       ##客户地址栏中输入的地址
%{HTTP_HOST}     ##客户主机
$1     ##RewriteRule后面跟的第一串字符的值

systemctl restart httpd

在这里插入图片描述
访问时自动跳转到了https。

10.Squid+Apache

squid是一个典型的翻墙软件

#squid 正向代理#
实验环境:
单网卡主机设定ip不能上网
双网卡主机设定ip1可以连接单网卡主机,设定ip2可以上网:ping通www.baidu.com。
实验效果
让单网卡主机不能上网但浏览器可以访问互联网页

操作:
在双网卡主机中

dnf install squid -y          安装squid
vim /etc/squid/squid.conf

systemctl restart squid

在这里插入图片描述
可以看出产生了 /var/spool/squid 下产生了16个目录,并且下面有256个二级目录

firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload

在这里插入图片描述
在单网卡网页选项中选择
NetWork Proxy
172.25.254.130 3128
在这里插入图片描述
测试:
在单网卡主机中
ping www.baidu.com 不通
在这里插入图片描述
在浏览器中访问www.baidu.com可以
在这里插入图片描述
正向代理成功。

#squid反向代理#
实验环境:
192.168.0.11      ##Apache服务器
192.168.0.13      ##squid,没有数据,负责缓存

vim /etc/squid/squid.conf

在这里插入图片描述
http_port 80 vhost vport        ##vhost 支持虚拟域名 vport 支持虚拟端口
cache_peer 192.168.0.11 parent 80 0 proxy-only    #当192.168.0.12的80端口被访问会
                          从192.168.0.11的80端口缓存数据

firewall-cmd --permanent --add-port=80/tcp   添加端口
firewall-cmd --reload
systemctl restart squid

最后设置:
在这里插入图片描述
测试:
firefox http://192.168.0.12
在这里插入图片描述
访问看到的时192.168.0.11上的数据则反向代理成功。

发布了36 篇原创文章 · 获赞 13 · 访问量 1456

猜你喜欢

转载自blog.csdn.net/thermal_life/article/details/104713233