apache常见用法

1.什么是apache?

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

2.apache的安装部署

yum install httpd -y		##apache软件
yum install httpd-manual	##apache的手册
systemctl start httpd 
systemctl enable httpd 
firewall-cmd --list-all				##列出火墙信息
firewall-cmd --permanent --add-service=http	##永久允许http
firewall-cmd --reload				##火墙从新加载策略

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

/var/www/html			##apache的/目录,默认发布目录
/var/www/html/index.html	##apache的默认发布文件
vim /var/www/html/index.html
<h1> hello world </h1>
:wq

在这里插入图片描述在这里插入图片描述
测试:
在这里插入图片描述在这里插入图片描述

3.apache的基础信息

#主配置目录:	/etc/httpd/conf
#主配置文件:	/etc/httpd/conf/httpd.conf
#子配置目录:	/etc/httpd/conf.d/
#子配置文件:	/etc/httpd/conf.d/*.conf
#默认发布目录:	/var/www/html
#默认发布文件:	index.html
#默认端口:	80
#默认安全上下文:httpd_sys_content_t
#程序开启默认用户: apache
#apache日志:	/etc/httpd/logs/*

1.修改默认端口
修改前本机selinux=enforcing

vim /etc/httpd/conf/httpd.conf
43 Listen 8080		##修改默认端口为8080
firewall-cmd --permanent --add-port=8080/tcp  ##若出现killed则说明此添加端口已被使用过。
firewall-cmd --reload 

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
若修改端口为666按照上面步骤则无法成功重启httpd(selinux=enforcing)
在这里插入图片描述在这里插入图片描述解决办法
在这里插入图片描述在这里插入图片描述
2.修改默认发布文件
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序

为了实验方便把端口该回默认端口80

vim /etc/httpd/conf/httpd.conf
164     DirectoryIndex index.html test.html	##当index.html不存在时访问test.html(这里实验删除index.html)

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述3.修改默认发布目录

vim /westos/html/index.html -p
vim /etc/httpd/conf/http.conf
120 DocumentRoot "/www/html"    ##注释掉
    DocumentRoot "/westos/html"
121 <Directory "/westos/html">
122         Require all granted   授权所有
123 </Directory>

在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述此时selinux=enforcing需考虑/westos/html/文件下的安全上下文是否和/var/www/html/的安全上下文文相同
在这里插入图片描述

在这里插入图片描述

4.apache的虚拟主机

cd /etc/httpd/conf.d/
vim vhost.conf
cd
mkdir -p /var/www/vhost/news        
mkdir -p /var/www/vhost/music
vim /var/www/vhost/news/index.html
vim /var/www/vhost/music/index.html
systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
##注意:1.默认看的是目录下的index.html文件,如果你的文件叫其他名字.html在访问时需要在浏览器端指定。
2.系统中默认的日志由三种:access_log,default.log,error_log,下面的music.log和news.log是我们刚在vhost.conf文件中写入的,他们俩保存了当有客户端访问时的记录。

测试:

在客户端
vim /etc/hosts
172.25.254.116   www.westos.com  news.westos.com   music.westos.com

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

5.apache的内部访问控制

1.针对主机的访问控制(安全性差,只要改ip就行)

vim /etc/httpd/conf.d/vhost.conf
5 <Directory "/var/www/html">
  6         Order allow deny              ##列表读取顺序,后读取的列表会覆盖限度去内容的重复部分
  7         Allow from all
  8         Deny from 172.25.254.216
  9 </Directory>

在这里插入图片描述
测试:
在ip为172.25.254.16的客户机
在这里插入图片描述
在ip为172.25.254.216的客户机
在这里插入图片描述
2.用户方式的访问控制(安全性较高)

htpasswd -cm	/etc/httpd/.apache_auth admin  
htpasswd -m 	/etc/httpd/.apache_auth szy
vim /etc/httpd/conf.d/vhost.conf
systemctl restart httpd

在这里插入图片描述
在这里插入图片描述测试:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
注意:如果有缓存就不用再次认证,此时我们需要清理缓存,ctrl+shift+delete清除缓存

vim /etc/httpd/conf.d/vhost.conf
 10 <Directory "/var/www/html">
 11         AuthUserFile /etc/httpd/.apache_auth
 12         AuthName "Please input your name and password"
 13         AuthType basic
 14         #Require        user admin
 15         Require valid-user   ##此时两个用户都可以访问
 16 </Directory>

6.apache支持的语言

1.html
HTML:超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用。HTML 不是一种编程语言,而是一种标记语言 (markup language),是网页制作所必备的“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体
前面的实验都是html语言完成的。

前面的实验都是用html来编写的

2.php
定义:PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

实验:

vim /etc/httpd/conf/httpd.conf
vim /var/www/html/index.php
<?php
	phpinfo();
?>
systemctl restart httpd

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

yum install php -y
systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述
3.perl(实验中用perll来编写cgi)

Perl: 最初的设计者为拉里·沃尔(Larry Wall),他于1987年12月18日发表。Perl借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性。其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
Perl 被称为“实用报表提取语言”(Practical Extraction and Report Language)。它是术语,而不仅仅是简写,Perl的创造者,Larry Wall提出第一个,但很快又扩展到第二个。那就是为什么“Perl”没有所有字母都大写。没必要争论哪一个正确,Larry 两个都认可。
Perl对进程、文件和文字有很强的处理能力,操作灵巧方便,已经成为web上主要的脚本语言,绝大部分的CGI是用Perl写的。不但如此,Perl作为一种快捷的语言原形,在让不同的系统一起工作方面也有广泛的应用。许多系统管理员都在用Perl完成各种各样繁多的系统管理。有关快速原型设计、系统工具、软体工具、系统管理、资料库连结、图像程式设计、网路连结,和WWW程式设计等之类的任务,都特别 适合用 Perl来做。

什么是cgi?

CGI:CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、VB 和Delphi 等。CGI 分为标准CGI 和间接CGI两种。标准CGI 使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。间接CGI 又称缓冲CGI,在CGI 程序和CGI 接口之间插入一个缓冲程序,缓冲程序与CGI 接口间用标准输入输出进行通信。

可以根据manual里的步骤来完成实验
在这里插入图片描述

vim /var/www/html/cgi/index.cgi 

#!/usr/bin/perl
print "Content-type: text/html\n\n";     ##转换成文本模式,text->html
print `date`;    

chmod +x /var/www/html/cgi/index.cgi 
vim /etc/httpd/conf.d/vhost.conf
systemctl restart httpd

在这里插入图片描述
查看手册
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看手册
在这里插入图片描述
在这里插入图片描述
测试:
发现无法访问,此时selinux=enforcing
在这里插入图片描述
解决办法:修改selinux未permissive或者修改/etc/www/html/cgi/文件夹以及旗下的文件的安全上下文

semanager fcontent -a -t  httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html/cgi/

在这里插入图片描述在这里插入图片描述
4.python我们使用的里面的wsgi
进入/var/www/cgi-bin目录,且在/var/www/cgi-bin下获得 webapp.wsgi文件

cd /var/www/cgi-bin/
yum install lftp -y
lftp 172.25.254.10
get webapp.wsgi       ##下载一个写好的脚本(.wsgi)

安装mod_wsgi

yum search wsgi
yum install mod_wsgi.x86_64 -y
vim /etc/httpd/conf.d/vhost.conf
systemctl restart httpd

在这里插入图片描述

vim /etc/hosts           ##添加本地解析

在这里插入图片描述
测试:
在这里插入图片描述

7.https

定义:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

1.实现https对其加密
发现无法访问
在这里插入图片描述
为解决上面问题进行以下操作:

yum install mod_ssl -y           ##安装ssl插件,使其可以访问https(如果不安装,在网址中输入https会出现报错
systemctl restart httpd

在这里插入图片描述
在防火墙策略里加入https

firewall-cmd --list-all
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

在这里插入图片描述测试:然后在浏览器https:172.25.254.116让你添加证书(证书相当于加密key的标签),证书添加之后可以访问到.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是这种证书不安全是别人的,所以我们需要自己去实现一个加密key,将原本的证书信息删除,因为浏览器会缓存。
在这里插入图片描述在这里插入图片描述或这或者crtl+shift+delete

进行key加密

安装加密key安装包

 yum install crypto-utils -y             自主提供加密key,安装crypto-utils插件,使其可以出现设置加密key的图形

在这里插入图片描述
进行key加密

cd  /etc/httpd/conf.d
genkey apache.westos.com       在子配置目录下生成加密文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

cd /etc/httpd/conf.d/
vim /etc/httpd/conf.d/ssl.conf         将锁和证书换成自己设定的
SSLCertificateFile  /etc/pki/tls/certs/apache.westos.com.crt
SSLCertificateKeyFile  /etc/pki/tls/private/apache.westos.com.key

在这里插入图片描述

systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

8.设定https虚拟主机并设定网页重写

在浏览器中输入一个网址回车后会自动在前面加https://

实验:
输入westos.com自动转成https://westos.com

cd  /etc/httpd/conf.d
vim meng_https.conf  在里面写入
<VirtualHost *:443>         https的默认端口是443
     ServerName login.westos.com
     DocumentRoot /var/www/meng/login
     Customlog logs/login.log combined
     SSLEngine on                                    开启加密认证
     SSLCertificateFile /etc/pki/tls/certs/apache.westos.com.crt
     SSLCertificateKeyFile  /etc/pki/tls/private/apache.westos.com.key
</VirtualHost>
<Directory "/var/www/meng/login">
            Require all granted
</Directory>

<VirtualHost *:80>                              将在80端口浏览器输入的字符前强制加入https
      ServerName login.westos.com
      RewriteEngine on
      RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1  [redirect=301]
</VirtualHost>

在这里插入图片描述

mkdir -p /var/www/vhost/login
vim /var/www/vhost/login/index.html
systemctl restart httpd

在这里插入图片描述测试:

vim /etc/hosts

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值