一、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. PAT甲级1152 Google Recruitment :[C++题解]判质数
  2. python 学习之输出流重定向
  3. 通过城市联动实时将地址显示到text中
  4. mysql delete 表关联删除数据_mysql delete 多表连接删除功能
  5. 「十二省联考 2019」皮配——dp
  6. nfs服务器远程访问,NFS远程共享存储
  7. 京解之才——2019年技术盘点微服务篇(三)| 程序员硬核评测
  8. android 绘画笔迹回放_随时记录分享书写笔迹,EverPEN高级版套装体验
  9. Maven自学日志01---安装
  10. linux shell学习三
  11. Protobuf简单编写与使用
  12. [转载] python模块的分类有哪些_整理了一份清单,常见Python问题的快速解答包
  13. sql 查询数据长度
  14. 好玩的抖音、快手无水印视频下载工具
  15. 如何批量将 Json 转为 Excel 格式
  16. 淘宝6.18叠猫猫赚猫币自动生成
  17. fpga板子怎么和电脑连_干货教程 | 手把手教你如何使用Multisim对Digilent FPGA开发板进行编程...
  18. pca降维算法java_PCA降维算法
  19. 第一只WiFi蠕虫的诞生:完整解析博通WiFi芯片Broadpwn漏洞(含EXP/POC)
  20. 未来的量子计算机模型,量子计算机上量子人工生命模型

热门文章

  1. kubernetes部署分布式存储longhorn
  2. 使用Bitbucket Cloud学习Git
  3. 轻量级微信小说小程序源码+UI不错/很火的
  4. 千锋python培训班怎么样
  5. 三菱Q系列PLC基本指令讲解
  6. 互联网思维到底是什么?
  7. 视频会议系统管理规章制度
  8. 自带的richedit控件显示图片文字(仿QQ聊天内容文字图片)
  9. 神州计算机u盘启动,神州电脑如何使用U盘装系统
  10. phpstudy 403 forbidden