Apache服务
发布日期:2022-02-12 16:06:52 浏览次数:5 分类:技术文章

本文共 4956 字,大约阅读时间需要 16 分钟。

Apache(未完善)

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

它可以运行在几乎所有广泛使用的计算机平台上。

本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

apache

在企业中常用的web服务,用来提供http://(超文本传输协议)

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/

apache的安装部署

关闭selinux
getenforce 查看selinux的状态
状态为 Disabled

yum install httpd -y ##安装http

systemctl start httpd ##开启http
systemctl enable httpd ##开机自启
firewall-cmd --list-all ##查看防火墙中是否添加了http服务
firewall-cmd --permanent --add-service=http ##在防火墙中添加http服务默认端口为80不需要添加

在这里插入图片描述

默认发布目录:/var/www/html/

rpm -qc httpd ##查看http的配置文件:/etc/httpd/conf/httpd.conf;

cd /var/www/html ##apached的根目录,默认发布目录:apache默认的数据文档存储目录
vim index.html ##apache的默认发布文件

在浏览器上输入172.25.254.139,会显示默认发布目录下的发布文件index.html的默认页面

在这里插入图片描述

[root@apache html]# yum install -y httpd-manual.noarch

##安装apache的手册
在浏览器上输入172.25.254.139/manual,会出现报错因为没有重新启动服务;

[root@apache html]# systemctl restart httpd

[root@apache html]# systemctl restart network

修改默认端口:

vim /etc/httpd/conf/httpd.conf

43 Listen 8080 #修改默认端口为8080
firewall-cmd --permanent --add-port=8080/tcp ##在防火墙中添加8080端口
firewall-cmd --reload
firewall-cmd --list-all
systemctl restart httpd ##修改完配置文件要重新启动给防火墙添8080:

在这里插入图片描述

在浏览器上输入172.25.254.139:8080,因为默认的端口号为80,而端口号发生了改变,所以在访问时需要添加8080端口,会出现配置文件的默认页面;

在这里插入图片描述

修改默认发布文件:

默认发布文件就是访问apache时没有指定文件名时默认访问的文件这个文件可以指定多个,有访问顺序

vim /etc/httpd/conf/httpd.conf

164 DirectoryIndex index.html westos index.html ##当index.html不存在时访westos

在这里插入图片描述

systemctl restart httpd

在这里插入图片描述

修改发布目录:

mkdir -p /westos/html/ #创建发布目录
vim /westos/html/index.html

vim /etc/httpd/conf/httpd.conf

DocumentRoot “/westos/html”

文件默认访问目录
在这里插入图片描述
这里端口已经修改回80,所以访问时不需要添加端口
在这里插入图片描述

添加:

设置主配置文件中的域名访问时的访问控制条件
vim /etc/httpd/conf/httpd.conf
121 <Directory “/var/www/html/westos”>
122 Order Allow,Deny ##命令读取顺序
Allow from All #允许所有通过
Deny from 172.25.254.110 #不允许110主机访问,读到deny会覆盖allow(图片有误注意)
123
systemctl restart httpd #重启动服务

创建动态网页php+cgi

什么是php?

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

什么是CGI?

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

步骤:

vim /var/www/html/index.php

<?php phpinfo(); ?>

在这里插入图片描述

测试:

http://172.25.254.139/index.php
报错信息:会显示空白的状态

解决办法:

添加php服务
安装php和cgi
yum install -y php
systemctl restart httpd

测试主机访问172.25.254.139/index.php

在这里插入图片描述

mkdir /var/www/html/cgi 创建目录

vim /var/www/html/cgi/index.cgi 编剧index.cgi
#!/usr/bin/perl
print “Content-type: text/html\n\n”;
print date; 文字输出是静态的,显示的是代码;

在这里插入图片描述

chmod +x index.cgi 添加可执行权限;

vim /etc/httpd/conf.d/default.conf ##进入子配置文件设置端口

默认的80端口
DocumentRoot /var/www/html/
CustomLog logs/default.log combined
#将错误日志和登录日志联系在一起,及可以一起看不用分开看;方便
121 <Directory “/var/www/html/cgi”>
122 Options +ExecCGI #允许使用mod_cgi模块执行CGI脚本I
AddHandler cgi-script .cgi #允许用户目录中所有以“.cgi”结尾的文件作为CGI脚本执行
123

在这里插入图片描述

测试:

http://172.25.254.139/cgi/index.cgi
每刷新一次网页时间就会变化
在这里插入图片描述

apache的ssl

加密套接字协议层:一种加密的通讯协定,用在使用者与网络服务器之间,sercurity socket layer)

1、.关于http和https的理论知识
(1)关于https
HTTPS(全称:Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为
目标的HTTP通道,即HTTP的安全版。HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细
内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http体系。用于安全的HTTP
数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验
证层(在HTTP与TCP之间)。

(2.)http与https的区别

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,
为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于
对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。即HTTPS协议是由SSL+HTTP协议构建的可
进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

(1)https协议需要到ca申请证书,一般免费证书较少,需要一定费用。
(2)http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
(4)http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

2、具体实现

加密认证
没有加密之前,访问https不能访问

cd /etc/httpd/conf.d

yum install -y mod_ssl # 用mod_ssl来实现https
ls
systemctl restart httpd

在这里插入图片描述

自签名证书

上面的证书是系统自己生成的,可是我想自己制作证书,以下操作是我自己在生成证书

删除station证书

yum install -y mod_ssl

yum insatll -y crypto-utils # 此软件提供加密工具

genkey www.westos.com # 生成该网页的证书和密钥

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

然后会开始生成秘钥

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

在这里插入图片描述

在这里插入图片描述

vim /etc/httpd/conf.d/ssl.conf # 把生成的证书和密钥写进文件里

101 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt #生成的证书
109 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key #生成的密钥
systemctl restart httpd

在这里插入图片描述

打开浏览器测试

http://www.westos.com
查看证书

转载地址:https://blog.csdn.net/weixin_45426401/article/details/99727256 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:shell中的文本处理
下一篇:shell 脚本中的基本知识

发表评论

最新留言

不错!
[***.144.177.141]2024年04月03日 02时33分36秒