一、Apache的作用

1、在web被访问时通常使用http://的方式

http://  ##超文本传输协议

2、http:// 超文本传输协议提供软件:

Apache
nginx
stgw
jfe
Tengine

二、Apache的安装

dnf install httpd -y

三、Apache的启用

systemctl enable --now httpd ##开启服务并设定服务位开机启动
firewall-cmd --list-all                ##查看火墙信息
firewall-cmd --permanent --add-service=http ##在火墙中永久开启http访问
firewall-cmd --permanent --add-service=https ##在火墙中永久开启https访问
firewall-cmd --reload                       ##刷新火墙使设定生效

四、Apache的基本信息

服务名称 : httpd
配置文件 :/ etc / httpd / conf / httpd.conf ## 主配置文件/ etc / httpd / conf.d /* .conf ## 子配置文件
默认发布目录: / var / www / html
默认发布文件: index.html
默认端口: 80 #http443 #https
用户 :      apache
日志 :     / etc / httpd / logs

五、Apache的基本配置

1、Apache端口修改

修改操作:

vim /etc/httpd/conf/httpd.conf
#修改Listen 8080firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
systemctl restart httpd

修改前:
创建默认发布文件,并在浏览器查看172.25.254.172


修改端口,在浏览器查看172.25.254.172


要想正确查看到发布文件,需要配置火墙,开启8080端口号
在浏览去输入172.25.254.172:8080可以正常访问了
做完实验后把配置文件中端口号还原为80

2、默认发布文件

在配置文件中修改默认发布文件

vim /etc/httpd/conf/httpd.conf
#修改DirectoryIndex test.html index.html
## 若test.html默认发布文件没有,就顺位给index.html
systemctl restart httpd

创建test.html

设置test.html为默认发布文件

在浏览器访问

删除test.html,index.html顺位成为默认发布文件

3、默认发布目录

mkdir /www/westos -p    #创建新的默认发布目录
vim /www/westos/index.html #创建默认发布文件
cat /www/westos/index.html
it is /www/westos/index.html #文件内容vim /etc/httpd/conf/httpd.conf
#修改:
DocumentRoot "/www/westos"
<Directory "/www/westos">
Require all granted
</Directory>systemctl restart httpd



selinux开启,要把新的默认发布目录安全上下文设置好

实验后还原默认发布目录

六、Apache的访问控制

实验素材:

mkdir /var/www/html/westos
vim /var/www/html/westos/index.html
cat /var/www/html/westos/index.html
# it is /var/www/html/westos/index.html

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

vim /etc/httpd/conf/httpd.conf<Directory "/var/www/html">Order Deny,Allow或者Allow,DenyAllow from 172.25.254.50Deny from All
</Directory>

要看Order 后第一个是Deny还是Allow,第一个是Allow,就是黑名单;第一个是Deny,就是白名单

a、ip黑名单

先看allow,再看deny,允许了所有之后,拒绝了172.25.254.72。(只拒绝172.25.254.72访问)

b、ip白名单

先看deny,再看allow,拒绝了所有之后,允许了172.25.254.72。(只允许172.25.254.72访问)

2、基于用户认证的访问控制

#2.基于用户认证#

htpasswd -cm /etc/httpd/.htpasswd admin ##生成认证文件
htpasswd -m /etc/httpd/.htpasswd dyh ##生成认证文件
#认证文件里已经有内容时不要加-c,否则会覆盖原有文件内容vim /etc/httpd/conf/httpd.conf
#修改:
<Directory "/var/www/html/westos">
AuthUserfile /etc/httpd/.htpasswd ##指定认证文件
AuthName "Please input your name and password" ##认证提示语
AuthType basic ##认证类型
Require user admin ##允许指定用户admin通过认证 (2选1)
Require valid-user ##允许所有用户通过认证 (2选1)
</Directory>systemctl restart httpd



测试:访问172.25.254.72/westos

七、Apache的虚拟主机

实验前设置:
在真机的解析文件给172.25.254.172 设置三个域名

通过三个域名都能访问172.25.254.172

现在想让www.westos.org域名访问原有主页,其他两个域名分别访问其他主页

mkdir -p /var/www/virtual/westos.org/{linux,luck}
echo "linux.westos.org" >/var/www/westos.com/wenku/index.html
echo "luck.westos.org" > /var/www/westos.com/news/index.htmlvim /etc/httpd/conf.d/vhost.conf ###子配置文件必须在子配置目录conf.d里面<VirtualHost_default_:80>DocumentRoot "/var/www/html"    ##默认发布目录CustomLog logs/default.log combined
</VirtualHost><VirtualHost *:80>ServerName linux.westos.comDocumentRoot "/var/www/virtual/westos.org/linux"    ##当访问linux.westos.org网址时的默认文件目录CustomLog logs/linux.log combined
</VirtualHost><VirtualHost *:80>ServerName luck.westos.orgDocumentRoot "/var/www/virtual/westos.org/luck"    ###当访问luck.westos.org网址时的默认文件目录CustomLog logs/luck.log combined
</VirtualHost>systemctl restart httpd

访问不同的域名,显示不同的页面

八、Apache的语言支持

1、php

  • httpd服务默认发布的index.html文件,即超文本标记语言,是Apache默认支持的语言;

  • 当我们在虚拟机westosa共享位置 /var/www/html目录下编写一个index.php文件(文件内容为展示php测试页面)在浏览器所在真实主机访问该index.php文件时,页面无显示,即index.php文件中的代码不执行,这表明Apache不支持php语言;

  • 在服务器中安装php软件后,在浏览器所在真实主机中再次访问该index.php文件,出现了php测试页面,index.php文件中的代码成功执行,此时Apache支持php语言

    dnf install php -y

    vim /var/www/html/index.php

    <?php phpinfo(); ?>

    systemctl restart httpd


    用测试主机访问服务器172.25.254.172/index.php

2、perl语言

cgi通用网关接口中主要使用的是perl语言,我们在虚拟机westosa共享位置 /var/www/html目录下编写index.cgi文件(文件内容为执行date命令显示系统当前时间)

cd /var/www/html/
vim index.cgi
cat index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print “hello,world.”;
print `date`;vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">Options +ExecCGIAddHandler cgi-script .cgi
</Directory>chmod +x index.cgi    ###给index.cgi文件赋予可执行权限
systemctl restart httpd

dnf install manual -y下载Apache的帮助手册

有关于CGI文件内容的提示



关于Apache配置文件里的修改提示


查询cgi-bin的安全上下文,并将index.cgi的安全上下文修改


测试:访问172.25.254.172/index.cgi

3、python语言

wsgi与cgi的功能类似,其主要使用的是python语言,我们在虚拟机westosa共享位置 /var/www/html目录下建立wsgi目录并书写wsgi的测试文件index.wsgi

dnf install python3-mod_wsgi
vim /var/www/html/index.wsgi
#编辑内容:
def application(env, westos):
westos('200 ok',[('Content-Type', 'text/html')])
return [b'hello westos ahhahahahah!']跟cgi一样设置安全上下文
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/index.wsgi'
restorecon -RvvF /var/www/html/index.wsgi
0
vim /etc/httpd/conf.d/vhost
编辑内容:
<VirtualHost *:80>
ServerName wsgi.westos.org
WSGIScriptAlias / /var/www/html/index.wsgi
</VirtualHost>systemctl restart httpd

需要安装包



在主机解析文件/etc/hosts 中添加解析域名wsgi.westos.org

在浏览器访问wsgi.westos.org

九、Apache的加密访问

1、安装https加密插件

dnf install mod_ssl.x86_64 -y



安装后出现ssl文件

浏览器访问172.25.254.172






此时安全证书不是我们自己的

2、生成自己的安全证书

openssl req --newkey rsa:2048 -nodes -sha256 -keyout /etc/httpd/westos.org.key -x509 -days 365 -out /etc/httpd/westos.org.crt



编辑ssl.conf配置文件,将证书和key文件路径该为自己生成的证书和key的路径

vim /etc/httpd/conf.d/ssl.conf
注释这一行#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
添加新一行SSLCertificateFile /etc/httpd/westos.org.crt
注释这一行#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
添加新一行SSLCertificateKeyFile /etc/httpd/westos.org.keysystemctl restart httpd


测试:再次访问172.25.254.172,重新生成证书,查看信息

3、设置特定网页生成证书(比如一些需要登录的页面,用户与网页会进行交互,需要安全加密)强制将网页http转换为https

mkdir -p /var/www/virtual/westos.org/login
echo login.westos.org > /var/www/virtual/westos.org/login/index.html
vim /etc/httpd/conf.d/vhosts.conf
#添加内容:<VirtualHost *:80>ServerName login.westos.orgRewriteEngine onRewriteRule ^(/.*)$ https://%{HTTP_HOST}$1# ^(/.*)$ 是客户地址栏中输入的地址%{HTTP_HOST}是客户主机$1 是RewriteRule后跟的第一串字符即^(/.*)$即login.westos.org整句的意思是讲:启动rewrite模块,将访问的域名请求,url地址内容不变,将http://变成https:#
</VirtualHost><VirtualHost *:443>ServerName login.westos.orgDocumentRoot "/var/www/westos.com/login"CustomLog logs/news.log combinedSSLEngine onSSLCertificateFile /etc/httpd/westos.org.crtSSLCertificateKeyFile /etc/httpd/westos.org.key
</VirtualHost>


再测试主机上配置域名解析

测试:访问login.westos.org,地址会转换为https开头


或者访问http://login.westos.org,地址也会转换为https开头

十、Apache+Squid代理

1、squid正向代理

实验需要一台能上网的服务器主机,一台能通过主机上午的代理主机westosa,一台不能上网的客户主机westosb

  • 正向代理
    正向代理就是:客户端虽然无法直接直接访问某台服务器,但可以通过一台可以访问该服务器的代理主机去访问。

1、服务器设置

设置能上网的服务器为路由器

firewall-cmd --add-masquerade

对代理主机进行设定连接到服务器主机的网关,并编辑DNS解析文件,使其可以上网

2、代理端设置

代理端关闭httpd服务

在代理端安装squid服务

dnf install squid -ysystemctl enable --now squid.service
firewall-cmd --permanent --add-service=squid
firewall-cmd --permanent --add-service=httpd

squid配置文件设置

vim /etc/squid/squid.conf

正向代理端虽然没有httpd服务,但是要允许客户端http访问

缓存文件设置,代理端从服务器上访问的信息保存在这里,再由客户端访问

重启服务后

在客户端上打开浏览器设定代理访问地址和端口



在客户端打开的浏览器可以看到百度,其实是100访问的网络,存放在缓存文件中,再由客户端通过squid服务访问到。实际客户端并不能上网

2、squid反向代理

先还原正向代理在浏览器中的设置

  • 反向代理原理:把westosb作为代理,westosa是主服务器,用户访问服务器端时,显示的是代理端中的内容

1、代理端:

dnf install httpd -y
systemctl rnable --now httpd
cd /var/www/html
vim index.htmlfirewall-cmd --permanent --add-sevice=http
firewall-cmd --reload
#编辑:hello dyh

2、服务端:

vim /etc/squid/squid.conf
#修改内容:
http_port 80 vhost vport
cache_peer 172.25.254.200 parent 80 0 proxy-onlysystemctl restart squid.service
systemctl-cmd --permanent --add-service=http
firewall-cmd --reload


测试:主机访问服务器ip 172.25.254.172
看到的是172.25.254.200代理端的地址默认发布文件内容

【三】Apache的管理及优化相关推荐

  1. Apache的管理及优化web

    Apache的管理及优化 web 1 实验环境 2 Apache的作用 3 Apache的安装与启用 3.1 Apache的安装 3.2 Apache的启用 4 Apache的基本信息 5 Apach ...

  2. Linux学习笔记-RH135之Apache的管理及优化

    Apache的管理及优化 1.Apache的作用 2.Apache的启用 3.Apache的基本配置 4.Apache的访问控制 (1)基于ip的黑名单 (2)基于ip的白名单 (3)基于用户的访问控 ...

  3. 3_3.Apache的管理及优化

    Apache的管理及优化 一.Apache的作用及安装 二.Apache的启用 四.Apache的基本配置 1.Apache端口修改 3.修改默认发布目录 五.Apache的访问控制 1.基于客户端i ...

  4. Apache 的管理及优化web

    目录 一.Apache的作用 二.Apache的安装 三.Apache的启用 四.Apache的基本信息 五.Apache的基本配置 六.Apache的访问控制 七.Apache的虚拟主机 八.Apa ...

  5. 3.3 Apache的管理及优化

    目录 一.Apache的作用 二.Aphache的安装和启用 1.基本信息 2.Aphache的安装 3.Aphache的启用 三.Apache的基本配置 1.端口修改 2.修改默认发布文件 3.修改 ...

  6. Apache的管理及优化

    1.Apache的简介及服务安装和启用 在web被访问时通常使用http://的方式,http://是一种超文本传输协议.apache是提供这种传输协议的软件. http:// 超文本传输协议提供软件 ...

  7. linux系统工程师----3.Apache的管理及优化

    前言 一.Apache的作用 Apache HTTP Server(简称Apache,音译为阿帕奇)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和 ...

  8. Apache的管理及优化——中篇{Apache的访问控制(黑白名单,用户密码认证)、Apache的虚拟主机}

    目录 四.Apache的访问控制 1.基于客户端ip的访问控制 1.1ip白名单 1.2ip黑名单 2.基于用户认证的访问控制 五.Apache的虚拟主机 四.Apache的访问控制 1.基于客户端i ...

  9. Apache的配置与应用【Apache访问控制】以及apache日志管理【日志分割、awstats日志分析】

    Apache的配置与应用以及日志管理 文章目录 Apache的配置与应用以及日志管理 一.Apache连接和访问控制 1.Apache连接 [1]KeepAlive [2]KeepAlive Time ...

  10. Gradle for Android 第三篇( 依赖管理 )

    Gradle for Android 第三篇( 依赖管理 ) 依赖管理是Gradle最闪耀的地方,最好的情景是,你仅仅只需添加一行代码在你的build文件,Gradle会自动从远程仓库为你下载相关的j ...

最新文章

  1. Android不使用支持库请求运行时权限
  2. 百度地图示例左侧的代码编辑器Ace Editor
  3. cad细等线体不显示_CAD打印文字不显示?很多人不知道这个知识点!
  4. 程序员的国庆节如何安排,你想好了吗?
  5. java 注释快捷打出时间_Java快捷---自动注释时间作者。。。
  6. springmvc java的验证码的小程序
  7. html是一种描述的沙子语言,小学低年级语文阅读训练
  8. 分布式SQL学习总结(2)——TiDB 的现在和未来
  9. arcgis server缓存路径修改
  10. 理解 HTTP 幂等性
  11. 一条SQL语句在MySQL中执行过程全解析
  12. 记一次学习爬取豆瓣数据于Excel表的爬虫
  13. 【AngularJS】 # AngularJS入门
  14. UE4 VR 重置摄像机朝向
  15. 基于tiny4412的Linux内核移植 -- 设备树的展开【转】
  16. Axure的动态面板制作tab切换效果
  17. 如何用Sublime text 快捷的打出HTML格式
  18. 计算机对室内设计的作用论文,谈计算机多媒体设计室内设计(毕业论文)
  19. 跨时钟域电路设计方法
  20. NewYorkCityAirbnb房源分析(项目练习_4)

热门文章

  1. lxqt lxde_面向极简主义者的Linux桌面:LXQt和LXDE入门
  2. 开发与研发:区别很大(上)
  3. error C2085: “index(随便一个形参)”: 不在形参表中
  4. windows10的etc路径下没有hosts文件
  5. 软考倒计时26天,最后冲刺阶段
  6. 奇(异或)偶(同或)校验
  7. vivo市场API事件上报对接
  8. 资源汇总 | 墨天轮2021年数据库技术直播回顾
  9. MMORPG开发入门
  10. 熵权法stata程序