世界使用广泛的Web服务器软件——apache

2024-01-24 18:30

本文主要是介绍世界使用广泛的Web服务器软件——apache,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、apache的简介

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇
Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上。是企业中常用的web服务,用来提供http://(超文本传输协议)

二、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>              ##标题字体设置,放大字体

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

输入以下地址:
http://172.25.254.100               ##可以看到刚才编辑的默认发布文件
http://172.25.254.100/manual        ##可以看到刚才下载的apache手册

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

三、apache的服务管理

1.apache的基础信息

#主配置目录:	/etc/httpd/conf
#主配置文件:	/etc/httpd/conf/httpd.conf
#子配置目录:	/etc/httpd/conf.d/
#子配置文件:	/etc/httpd/conf.d/*.conf 
#默认发布目录:	/var/www/html
#默认发布文件:	index.html
#默认端口:	80                                     (即访问网址时的真实网址是http://172.25.254.121:80)
#默认安全上下文:httpd_sys_content_t
#程序开启默认用户: apache
#apache日志:	/etc/httpd/logs/*

2.默认端口的修改

netstat -antlupe | grep httpd                      ##查看http正在使用的端口
semanage port -l | grep http                       ##查看http自带的供选择使用的一些端口

在这里插入图片描述
(1)当修改默认端口为http自带其他端口时

vim /etc/httpd/conf/httpd.conf                      ##编辑主配置文件
43 Listen 8080										##修改默认端口为8080
#浏览器的默认端口是80,所以此处不用输入:80
firewall-cmd --permanent --add-port=8080/tcp        ##给防火墙添加端口,允许通过
firewall-cmd --reload                               ##使火墙重新读取设定
systemctl restart httpd                             ##重启服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)当修改默认端口为一个新端口时

semanage port -a -t http_port_t -p tcp 666          ##给http添加一个端口,使这个端口可以被使用
vim /etc/httpd/conf/httpd.conf                      ##编辑主配置文件
43 Listen 666										##修改默认端口为666
#浏览器的默认端口是80,所以此处不用输入:80
firewall-cmd --permanent --add-port=666/tcp         ##给防火墙添加端口,允许通过
firewall-cmd --reload                               ##使火墙重新读取设定
systemctl restart httpd                             ##重启服务

在这里插入图片描述
3.默认发布文件的修改
##默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
##这个文件可以指定多个,但是有访问顺序

vim /etc/httpd/conf/httpd.conf
164     DirectoryIndex index.html test.html			##当index.html不存在时访问test.html

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

mkdir -p /westos/html                ##新建一个目录
vim /etc/httpd/conf/httpd.conf       120 DocumentRoot "/westos/html"
121 <Directory "/westos/html">
122         Require all granted      ##服务的安全设定,允许别人访问
123 </Directory>
systemctl restart httpd              ##重启服务

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

semanage fcontext -a -t httpd_sys_content_t '/westos/html(/.*)?'  		 ##修改发布目录的安全上下文  
rstorecon -RvvF /westos/html/                                   	 	 ##使目录及内部的所有内容更改

在这里插入图片描述
在这里插入图片描述
5.apache的虚拟主机(让不同的站点访问不同的目录)

vim /etc/httpd/conf.d/vhost.conf                        ##新建一个配置文件,名字任意,但是必须以.conf结尾 1 <VirtualHost _default_:80>                          ##默认访问的发布目录,不指定就为www2         DocumentRoot /var/www/html                 3         CustomLog logs/default.log combined         ##站点日志(combined)表示四种日志的集合4 </VirtualHost>5 6 <VirtualHost *:80>7         ServerName news.westos.com					##指定站点名称8         DocumentRoot /var/www/html/vhost/news       ###站点默认发布目录9         CustomLog logs/news.log combined10 </VirtualHost>11 <Directory "/var/www/vhost/news">12         Require all granted                         ##安全设定为允许13 </Directory>14 15 <VirtualHost *:80>16         ServerName music.westos.com17         DocumentRoot /var/www/html/vhost/music18         CustomLog logs/music.log combined19 </VirtualHost>20 <Directory "/var/www/vhost/music">21         Require all granted22 </Directory>

在这里插入图片描述
测试:
##先再测试主机上做好本地解析,给apache服务器的不同站点配置不同的默认发布文件

vim /etc/hosts
172.25.254.121  news.westos.com music.westos.com www.westos.com

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

四、apache内部的访问控制(用户权力的管理)

1.针对于主机的访问控制

vim /etc/httpd/conf.d/vhost.conf5 <Directory "/var/www/html/test">6         Order Deny,Allow		  ##列表读取顺序,后读取的列表会覆盖先读取内容的重复部分(即黑名单或者白名单)7         Allow from 172.25.254.44    8         Deny from all9 </Directory>
##此处即为白名单,只允许172.25.254.44访问

在这里插入图片描述
测试:
在172.25.254.121主机上:(只能看到测试页,看不到默认发布文件的内容)
在这里插入图片描述
在172.25.254.6主机上:
在这里插入图片描述
2.针对用户方式的访问控制(即访问的时候会让你输入指定的用户名和密码,这个用户名和密码可以有多个)

htpasswd -cm	/etc/httpd/userpass	admin                ##建立一个用户admin,会生成关于用户的密码文件userpass,可以在生成时写成.userpass 将文件隐藏起来
htpasswd -m 	/etc/httpd/userpass	admin1               ##给访问添加一个用户,原来的用户仍然可以使用

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

vim  /etc/httpd/conf.d/vhost.conf               ##编辑配置文件10 <Directory "/var/www/html/admin">11         AuthUserFile /etc/httpd/userpass    ##建立用户时指定的文件12         AuthName "Please input your name and password"            ##登陆时的提示语13         AuthType basic                      ##加密方式14         #Require user  admin admin     		##可以用空格隔开指定多个用户生效15         Require valid-user           		##允许所有文件中的所有用户登陆16 </Directory>
systemctl restart httpd

在这里插入图片描述
测试:
在这里插入图片描述在这里插入图片描述
##清除缓存再用另一个用户尝试
在这里插入图片描述

五、apache支持的语言

1.html(即上文所写内容,超文本标记语言)
2.php(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”,是一种通用开源脚本语言。)

vim /var/www/html/index.php         ##编写一个php脚本<?phpphpinfo();
?>yum install php -y                  ##安装php运行必须的环境
systemctl restart httpd             ##重启服务

测试:
在这里插入图片描述
3.cgi(Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。)

mkdir -p /var/www/html/cgi                                        ##创建一个cgi的默认发布目录
semanage fcontext -l | grep http                                  ##查看可执行文件的安全上下文
semanager fcontent -a -t  httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html/cgi/

在这里插入图片描述

vim /var/www/html/cgi/index.cgi                 ##编辑一个默认发布文件(格式在apache手册里)           #!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;                                   ##脚本内容为显示当前时间chmod 755 /var/www/html/cgi/index.cgi           ##给脚本赋予可执行权限
/var/www/html/cgi/index.cgi	                    ##执行下脚本确保脚本运行正常

在这里插入图片描述

vim /etc/httpd/conf.d/vhost.conf                ##格式在apache手册里17 <Directory "/var/www/html/cgi">				##默认发布目录18         Options +ExecCGI                    ##允许cgi文件运行19         AddHandler cgi-script .cgi          ##cgi的文件格式.cgi20 </Directory>systemctl restart httpd                         ##重启服务

在这里插入图片描述
##测试:
在这里插入图片描述
4.wsgi(WSGI是Web Server Gateway Interface的缩写。)
##PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。

yum install mod_wsgi -y                    	      ##安装wsgi需要的服务软件
systemctl restart httpd                           ##安装wsgi后重启服务,否则后面可能会有问题
vim /var/www/html/cgi-bin/webapp.wsgi             ##编写一个python程序(本次为监控内存使用)#!/usr/bin/env python
import timedef application (environ, start_response):response_body = 'UNIX EPOCH time is now: %s\n' % time.time()status = '200 OK'response_headers = [('Content-Type', 'text/plain'),('Content-Length', '1'),('Content-Length', str(len(response_body)))]start_response(status, response_headers)return [response_body]
vim /etc/httpd/conf.d/vhost.conf                  ##编辑配置文件添加如下内容35 <VirtualHost *:80>36         ServerName wsgi.westos.com37         WSGIScriptAlias /   /var/www/html/cgi-bin/webapp.wsgi         ##默认发布目录访问文件38 </VirtualHost>systemctl restart httpd                          ##重启服务

在这里插入图片描述
测试:
先在测试主机上做好本地解析

vim /etc/hosts
172.25.254.121    wsgi.westos.com

在这里插入图片描述

六、https

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

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

1.环境部署

yum install mod_ssl -y                          ##SSL(Secure Sockets Layer 安全套接层),为数据通讯提供安全支持
yum install crypto-utils -y                     ##SSL所需的证书和访问的钥匙组件firewall-cmd --permanent --add-service=https    ##允许防火墙通过https服务 
firewall-cmd --reload                           ##让火墙重新读取策略
systemctl restart httpd                         ##重启apache

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.生成证书和钥匙并加到指定的网址上

genkey www.westos.com                          ##给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.keysystemctl restart httpd                       ##重启apache

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
先在测试主机上做好本地解析,并清空浏览器的缓存(不同浏览器方法不同)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

(1)设定虚拟主机

vim /etc/httpd/conf.d/vhost-https.conf1 <VirtualHost *:443>                                              ##https默认使用443端口,与http的80不同2         ServerName login.westos.com3         DocumentRoot /var/www/html/login/html                    ##默认发布目录4         CustomLog logs/login.logs combined                       ##四种日志集合5         SSLEngine on                                             ##允许加密访问6         SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt7         SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key8 </VirtualHost>9 10 <Directory "/var/www/html/login/html">11         Require all granted                                      ##开放安全设定12 </Directory>mkdir -p /var/www/html/login/html                                    ##建立一个默认发布目录
vim /var/www/html/login/html/index.html                              ##写一个默认发布文件systemctl restart httpd                                              ##重启apache

在这里插入图片描述
在这里插入图片描述
测试:
在测试主机做好本地解析
在这里插入图片描述
(2)https的网页重写
##当我们在浏览器输入http://login.westos.com时,默认访问80端口,而生活中我们输入http://www.baidu.con这种网址时会自动变成https://www.baidu.com,我们要做的就是在用户输入http时自动跳转到https加密

  1 <VirtualHost *:443>2         ServerName login.westos.com3         DocumentRoot /var/www/html/login/html4         CustomLog logs/login.logs combined5         SSLEngine on6         SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt7         SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key8 </VirtualHost>9 10 <Directory "/var/www/html/login/html">11         Require all granted12 </Directory>13 14 <VirtualHost *:80>15         ServerName login.westos.com16         RewriteEngine on                   						      ##允许网页重写服务17         RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]     ##$1即为$前面的字符^(/.*),表示所有18 </VirtualHost>systemctl restart httpd ^(/.*)$				##客户在浏览器地址栏中输入的所有字符
https://			##强制客户加密访问
%{HTTP_HOST}		##客户请求主机
$1					##"$1"标示 ^(/.*)$的值
[redirect=301]		##301永久重写 302临时

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

这篇关于世界使用广泛的Web服务器软件——apache的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/640589

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

揭秘世界上那些同时横跨两大洲的国家

我们在《世界人口过亿的一级行政区分布》盘点全球是那些人口过亿的一级行政区。 现在我们介绍五个横跨两州的国家,并整理七大洲和这些国家的KML矢量数据分析分享给大家,如果你需要这些数据,请在文末查看领取方式。 世界上横跨两大洲的国家 地球被分为七个大洲分别是亚洲、欧洲、北美洲、南美洲、非洲、大洋洲和南极洲。 七大洲示意图 其中,南极洲是无人居住的大陆,而其他六个大洲则孕育了众多国家和

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的