热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第三本书第三章Apache的管理及优化

1.Apache的作用:在web被访问时通常使用http:的方式http: ##超文本传输协议http:超文本传输协议提供软件: Apache nginx stgw jfe Ten


1.Apache的作用:
在web被访问时通常使用http://的方式
http://  ##超文本传输协议
http:// 超文本传输协议提供软件:
  Apache
  nginx
  stgw
  jfe
  Tengine



2.安装Apache
 dnf search Apache  #查找
 dnf install httpd.x86_64 -y   #安装服务 

3.Apache的启用
 systemctl  enable --now httpd   #开启服务,并设定服务为开机启动
 firewall-cmd --list-all  ##查看火墙信息
 firewall-cmd --permanent  --add-service=http  #在火墙中永久开启http访问
 firewall-cmd --reload  #刷新火墙使设定生效
 vim /var/www/html/index.html  #修改默认测试页
   hello world

 检测:172.25.254.117==显示是hello world



 4.Apache的基本信息:
1)服务名称:httpd
2)配置文件:
  /etc/httpd/conf/httpd.conf  ##主配置文件
  /etc/httpd/conf.d/*.conf    ##子配置文件
3)默认发布目录: /var/www/html
4)默认发布文件: index.html
5)默认端口:80  #http。   【443 #https 】
6)用户: apache
7)日志: /etc/httpd/logs



5.Apache的基本配置
1)Apache端口修改
vim /etc/httpd/conf/httpd.conf #修改Apache的主配置文件
  Listen 8080  #默认端口改为8080(45行左右)
systemctl restart httpd   #重启服务
firewall-cmd --permanent --add-port=8080/tcp   #添加并永久打开一个端口到tcp区域
firewall-cmd --reload  #更新火墙


*检测 http://172.25.254.117:8080[之前的端口80,就不能访问了]


==本次实验做完把端口号还原成默认== 

2)默认发布文件

 cd /var/www/html
 vim test.html
   hello test
vim /etc/httpd/conf/httpd.conf
    DirectoryIndex test.html index.html
systemctl restart httpd


*检测 http://172.25.254.117==显示应该是hello test


3)默认发布目录
mkdir /westos/html -p


ls -Zd /var/www/html #查看/var/www/html的安全上下文
ls -Zd /westos/html #查看/westos/html目录的安全上下文
semanage fcontext -a -t httpd_sys_content_t '/westos/html(/.*)?'   #永久修改/westos/html目录的安全上下文
restorecon -RvvF /westos/html/ #刷新
systemctl restart httpd  #重启服务


vim /westos/html/index.html
      /westos/html 's page
vim /etc/httpd/conf/httpd.conf
       *注释掉DocumentRoot "/var/www/html"
       DocumentRoot "/westos/html"
       
            Require all granted
       

systemctl restart httpd


*检测 http://172.25.254.117==显示应该是/westos/html 's page


**实验完成后恢复环境==取消注释DocumentRoot "/var/www/html"
注意:一定要把新建的/westos/html目录的安全上下文改成跟/var/www/html目录一样,不然访问出来的页面是系统默认的一整页的英文



6.Apache的访问控制
实验素材:

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


检测:访问172.25.254.117/westos===出现页面是:/var/www/html/westos page


1)基于客户端ip的访问控制
ip白名单

vim /etc/httpd/conf/httpd.conf
     DocumentRoot "/var/www/html"
   
          Order Deny,Allow  #先读Deny在读Allow
        Allow from 172.25.254.17  #只允许此ip主机访问,一定要写真实主机的ip
         Deny from all 
 

systemctl restart httpd


检测:172.25.254.117/westos/==出现的页面是:/var/www/html/westos page


注意:读的顺序是谁在前先读谁,在写ip的时候一定要写真实主机的ip
ip黑名单

vim /etc/httpd/conf/httpd.conf
   DocumentRoot "/var/www/html"
   
        Order Allow,Deny  #先读Allow
        Allow from 172.25.254.17  
         Deny from all #最后读deny结果是任何ip都不能访问
   

systemctl restart httpd


##注意:此实验做完删掉刚才添加的黑白名单
 

2)基于用户认证
cd /etc/httpd/
ls
htpasswd -cm .htauthfile admin  #生成认证,密码123
htpasswd -m .htauthfile lee  #生成认证,密码123
cat .htauthfile  #查看
vim /etc/httpd/conf/httpd.conf  
   
         AuthUserfile /etc/httpd/.htauthfile
         AuthName "Please input username and passwd !!!"
         AuthType basic
   #     Require user lee  #指定lee用户可以访问。那么admin就不可以访问了
         Require valid-user  #指定所有用户都可以访问
   

 systemctl restart httpd


注意:当/etc/httpd/htpasswdfile存在那么在添加用户时不要加-c参数否则会覆盖源文件内容

 检测:



7.Apache的虚拟主机
真机中:
    vim /etc/hosts  #设置客户端解析(在浏览器所在的主机中添加)
       172.25.254.117 www.westos.org  linux.westos.org  luck.westos.org


虚拟机中:

 mkdir -p /var/www/westos.org/{linux,luck} #创建存放的目录
   echo linux > /var/www/westos.org/linux/index.html #把linux导入文件
   echo luck > /var/www/westos.org/luck/index.html #把luck导入文件,注意路径
   cat /var/www/westos.org/luck/index.html  #查看文件内容
   cat /var/www/westos.org/linux/index.html 
   cd /etc/httpd/conf.d/  #切换目录

   vim vhost.conf #注意编写此文件时的绝对路径
     
       DocumentRoot /var/www/html
       CustomLog logs/default.log combined
     

 
   
       ServerName linux.westos.org
       DocumentRoot /var/www/westos.org/linux
       CustomLog logs/linux.log combined
   

   
        ServerName luck.westos.org
        DocumentRoot /var/www/westos.org/luck
        CustomLog logs/luck.log combined
   

 systemctl restart httpd


 *检测www.westos.org===显示内容是hello world
     linux.westos.org ===显示内容是linux
     luck.westos.org ====显示内容是luck

 

 

 



8.Apache的语言支持
1)php
 

cd /var/www/html/
mkdir /var/www/html/php #建立php目录,注意建立的路径
dnf install php -y  #安装php
systemctl restart httpd  #重启服务【安装完后必须重启程序!!!】
cd php/
vim index.php  #创建php程序,注意路径
       phpinfo();
  ?>
systemctl restart httpd


检测:172.25.254.117/php/index.php

2)cgi(perl)
 

mkdir /var/www/html/cgi  #创建cgi目录,一定要注意路径
cd /var/www/html/cgi
vim index.cgi  #编写cgi程序
  #!/usr/bin/perl
  print "Content-type: text/html\n\n";
  print `date`;
perl index.cgi  #执行程序
Content-type: text/html
  Fri Nov  5 09:58:07 CST 2021
chmod +x /var/www/html/cgi/index.cgi   #增加可执行的权限

vim /etc/httpd/conf.d/vhost.conf   
      #路径一定要写正确
      Options +ExecCGI
      AddHandler cgi-script .cgi
      Directoryindex index.cgi
   

systemctl restart httpd
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?' #永久修改该目录的安全上下文
restorecon -RvvF /var/www/html/cgi  #刷新


检测:172.25.254.117/cgi/

 

3)wsgi(python)
 

mkdir /var/www/html/wsgi #建立存放目录
vim /var/www/html/wsgi/index.wsgi  #编写swgi程序。内容一定对齐,python对格式要求很严谨
   def application(env,westos):
       westos('200 ok',[('Content-Type', 'text/html')])
       return [b'hello westos']
dnf install python3-mod_wsgi -y   #下载安装
systemctl restart httpd

vim /etc/httpd/conf.d/vhost.conf #编写虚拟机主配置文件
   
         ServerName wsgi.westos.org  #服务名字
         WSGIScriptAlias / /var/www/html/wsgi/index.wsgi  #路径写正确
   

systemctl restart httpd

 

在主机中:vim /etc/hosts  #一定要是超级用户
          172.25.254.117  wsgi.westos.org


检测:wsgi.westos.org

 



9.Apache的加密访问
 

dnf install mod_ssl -y  #安装加密插件
systemctl restart httpd  #每次下载完之后一定要重启服务
mkdir /etc/httpd/tls  
openssl  req --newkey rsa:2048 -nodes -sha256 -keyout /etc/httpd/tls/www.westos.org.key -x509 -days 365 --out /etc/httpd/tls/www.westos.org.crt【x509 证书格式;-req 请求;-in 加载签证名称】  #生成证书、私钥【不能小于2048】、证书签名文件
vim /etc/httpd/conf.d/ssl.conf  #编写配置文件【指定证书和密钥文件,路径一定要对】
  #85和93行注释掉,然后复制下来改为:
  SSLCertificateFile /etc/httpd/tls/www.westos.org.crt #指定证书。85行内容,路径一定要写正确
  SSLCertificateKeyFile /etc/httpd/tls/www.westos.org.key  #指定密钥文件。93行,路径一定要正确
systemctl restart httpd  #重启服务

mkdir /var/www/westos.org/login  #创建存放的目录 
echo login\'s page > /var/www/westos.org/login/index.html 把login\'s page导入到路径文件中
cat /var/www/westos.org/login/index.html  #查看文件内容
  login's page

vim /etc/httpd/conf.d/vhost.conf  #编写虚拟机主配置文件
   
      ServerName login.westos.org
      RewriteEngine on
      RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1  #【^(/.*)$ ##客户地址栏中输入的地址;%{HTTP_HOST} ##客户主机;$1  ##RewriteRule后面跟的第一串字符的值】
   

    #443是超文本加密传输协议
       ServerName login.westos.org
       DocumentRoot "/var/www/westos.org/login"
       SSLEngine on
       SSLCertificateFile /etc/httpd/tls/www.westos.org.crt
       SSLCertificateKeyFile /etc/httpd/tls/www.westos.org.key
   

systemctl restart httpd


在主机中:vim /etc/hosts  #一定要是超级用户
          172.25.254.117  login.westos.org


检测:访问login.westos.org,会自动变为加密的地址 

 

 

 

 



10.squid

 squid 正向代理

正向代理:当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器哪里获取请求数据而不再向原web站点请求数据,这样节省了网络宽带同时也提高了访问速度


需要2台主机,一台主机可以上网(squid代理),一台主机不能上网,不能上网的主机通过可以上网的主机去访问网页
实验效果:让单网卡主机不能上网但浏览器可以访问互联网页
操作:

在双网卡主机nodea中:【一定要确保软件仓库是否搭建成功】

nmcli connection show
nmcli connection delete Wired\ connection\ 1
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens3 #配置网络ip地址
DEVICE=ens3
OnBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.170
NETMASK=255.255.255.0
NAME=ens3
DNS1=114.114.114.114
GATEWAY=172.25.254.70
nmcli connection reload
nmcli connection up ens3
nmcli connection show

dnf install squid -y #下载squid
vim /etc/squid/squid.conf #修改主配置文件
第59行改为 http_access allow all
第65行取消注释
systemctl start squid #开启squid服务
firewall-cmd --permanent --add-service=squid #在火墙中永久添加squid服务
firewall-cmd --reload #刷新火墙
firewall-cmd --add-masquerade #打开地址伪装

 

 在单网卡主机nodeb中:【一定要注意路径】

nmcli connection show
nmcli connection delete Wired\ connection\ 1
cd /etc/sysconfig/network-scripts/ #配置网络文件
vim ifcfg-ens3
DEVICE=ens3
OnBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.200
NETMASK=255.255.255.0
NAME=ens3
nmcli connection reload
nmcli connection up ens3
nmcli connection show
dnf install firefox -y
ping www.baidu.com #ping不通

   打开火狐,在火狐中设定

   

squid反向代理 

在nodeb中
 

dnf install httpd -y #下载软件
systemctl start httpd #开启httpd服务
firewall-cmd --add-service=http #在火墙中永久设定http
echo 172.25.254.200 > /var/www/html/index.html 把172.25.254.200导入/var/www/html/index.html文件中

在nodea中

vim /etc/squid/squid.conf #在主配置文件中添加
   http_port 80 vhost vport
   cache_peer 172.25.254.200 parent 80  0 proxy-only
systemctl restart squid.service  #重启squid服务
firewall-cmd --add-service=http #在火墙中永久添加http

 在火狐上访问

 




推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 1.直接在cmd窗口运行pipinstalljieba2.使用conda自带的安装工具condainstalljieba3.有一些模块是无法使用以上两种方式安装上ÿ ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
author-avatar
长沙祛疤--欣奕除疤_998
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有