5.web服务器---Apache

本文介绍了Apache服务器的基础知识,包括什么是Apache、http的概念。详细阐述了Apache的安装部署过程,如修改默认接口为8080、设置访问控制、指定用户访问、虚拟主机配置。此外,还涉及到了Apache支持的php、cgi、wsgi语言,以及https自签名证书的使用和网页重定向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是Apache?

	Apache HTTP Server(简称Apache)提供http协议,是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其具有的跨平台性和安全性,被广泛使用,是最流行的Web服务器端软件之一。
	它快速、可靠并且可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,可以创建一个每天有数百万人访问的Web服务器。

Apache:(prefork)预派生,稳定,同步阻塞,正向代理,动态资源服务器
Nginx:(fork),无法处理动态页面,异步非阻塞,进程交替使用内存,反向代理,静态资源服务器
Tengin:alibaba公司使用
架构:
LAMP=Linux+Apache+Mysql+Php
LNMP=Linux+Nginx+Mysql+Php

2.什么是http?

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

3.Apache安装部署

步骤一:实验前reset虚拟机desktop,配置ip(172.25.254.118),yum源,desktop主机名设置为:apache.example.com,关闭selinux
在这里插入图片描述
步骤二:安装http服务,安装http菜单,设置开机启动

yum install -y httpd
yum install -y httpd-manual
systemctl start httpd
systemctl enable httpd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤三:火墙中允许http

firewall-cmd --permanent
firewall-cmd --reload
firewall-cmd --liat-all

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

4.Apache默认设置的修改

(1)Apache的基础信息
信息说明
/etc/httpd/conf主配置目录
/etc/httpd/conf.d/子配置目录
/etc/httpd/conf/httpd.conf主配置文件
/etc/httpd/conf.d/*conf子配置文件
/var/www/html默认发布目录
/var/www/html/index.html默认发布页面(页面显示的内容为index.html文件中所写的内容
80端口Apache默认访问端口
/etc/httpd/logsApache的日志
/etc/httpd/logs/access_log访问日志
/etc/httpd/logs/error_log错误日志
http_sys_content_t默认安全上下文
apache程序开启默认用户

企业在一定时间会做日志截断,日志压缩,方便管理查询
在这里插入图片描述
在这里插入图片描述

进行实验前先对配置文件进行备份

(2) 修改默认接口为:8080

步骤一:修改默认端口为8080

vim /etc/httpd/conf/httpd.conf
	Listen 8080

在这里插入图片描述
步骤二:火墙中允许8080端口

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
systemctl restart httpd
nestat -antlupe | grep httpd

在这里插入图片描述
步骤三:浏览器中输入:172.25.254.118:8080进行测试,若显示为默认发布文件中的内容,则说明修改默认接口成功
在这里插入图片描述

(3)修改默认发布文件
1> /var/www/html/index.html是Apache的默认发布页面

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

2> 将修改默认发布文件为:/etc/var/www/html/zxyos

步骤一:在配置文件中修改默认发布文件为:/etc/var/www/html/zxyos,在此文件中写入页面显示内容

vim /etc/httpd/conf/httpd.conf
	DirectoryIndex zxyos index.html		/*当zxyos不存在时,访问index.html*/
systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
发布文件后可加 .html ,也可不加
步骤二:浏览器中输入:172.25.254.118:8080进行测试,显示内容为zxyos文件中的内容
在这里插入图片描述

(4)修改默认发布目录为:/zxyos/html/

步骤一:修改默认发布目录为/zxyos/html/,在其中写入默认发布文件

vim /etc/httpd/conf/httpd.conf
	DocumentRoot "/zxyos/html"
	<Directory "/zxyos">
		Require all granted
	</Directory>
systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
步骤二:浏览器中输入:172.25.254.118:8080进行测试,显示内容为默认发布目录中的默认发布文件中的内容
在这里插入图片描述

5.访问控制

步骤一:建立访问目录,访问文件

cd /var/www/html/
mkdir zxyos
vim zxyos/index.html
	<h1>test page--for jay</h1>
systemctl restart httpd

在这里插入图片描述
步骤二:配置文件中写入访问权限,不同测试机的浏览器中输入:172.25.254.118/zxyos/index.html 进行测试
Order Allow,Deny:先执行Allow命令,后执行Deny命令,Deny命令会覆盖Allow命令
1> 允许所有人查看/var/www/html/zxyos目录下的默认发布文件,但禁止172.25.254.18

vim /etc/httpd/conf/httpd.conf
	DocumentRoot "/var/www/html"
	<Directory "/var/www/html/zxyos">
        	 Order   Allow,Deny
        	 Allow   from All		/*允许所有人查看/var/www/html/zxyos目录下的默认发布文件*/
       	 	 Deny from 172.25.254.18		/*禁止172.25.254.18 */
	</Directory>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2> 不允许任何人查看/var/www/html/zxyos目录下的默认发布文件,只允许172.25.254.18查看
Order Deny,Allow:先执行Deny命令,后执行Allow命令,Aloow命令会覆盖Deny命令

vim /etc/httpd/conf/httpd.conf
	DocumentRoot "/var/www/html"
	<Directory "/var/www/html/zxyos">
         	Order  Deny,Allow
         	Allow   from 172.25.254.18		
         	Deny from All	
	</Directory>

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

6.指定用户访问

步骤一:建立用户,设置密码,生成加密字符
htpasswd -cm zxyosuser 用户名建立第一个用户(之后建立的用户若使用 -cm 则会覆盖之前的用户信息)

htpasswd -cm zxyosuser admin
htpasswd -m zxyosuser admin1
cat zxyosuser

在这里插入图片描述
步骤二:配置文件中设置用户访问权限

vim /etc/httpd/conf/httpd.conf
	DocumentRoot "/var/www/html"
	<Directory "/var/www/html/zxyos"> 
        	AuthUserFile    /etc/httpd/conf/zxyosuser	/*认证文件*/
        	AuthType        basic	/*认证类型*/
        	AuthName        "Please input your name and password !!!"	/*欢迎语*/
        	Require user    admin	/*只允许admin用户登录*/
	</Directory>

在这里插入图片描述
在这里插入图片描述
admin用户可登陆
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
admin1用户不可登陆
在这里插入图片描述
在这里插入图片描述

vim /etc/httpd/conf/httpd.conf
	DocumentRoot "/var/www/html"
	<Directory "/var/www/html/zxyos">       
        	AuthUserFile    /etc/httpd/conf/zxyosuser
        	AuthType        basic
        	AuthName        "Please input your name and password !!!"      
        	Require         valid-user	/*允许所有用户登录*/
	</Directory>

在这里插入图片描述
在这里插入图片描述
admin1用户可登陆
在这里插入图片描述
在这里插入图片描述

7.Apache的虚拟主机

一台Apache主机拥有多个站点,不同的域名对应不同的资源
步骤一:测试机添加本地解析

vim /etc/hosts	/*本地解析*/
	172.25.254.118 www.zxyos.com news.zxyos.com music.zxyos.com

在这里插入图片描述
在这里插入图片描述
步骤二:建立不同站点对应的配置文件及发布文件内容

cd /var/www/
ls
mkdir /var/www/virtual/news/html -p
mkdir /var/www/virtual/music/html -p
vim /var/www/virtual/news/html/index.html
	<h1>news.zxyos.com</h1>
cp /var/www/virtual/news/html/index.html /var/www/virtual/music/html/index.html
vim /var/www/virtual/music/html/index.html
	<h1>music.zxyos.com</h1>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤三:设置不同站点的配置

cd /etc/httpd/conf.d/
ls
vim default.conf
	<VirtualHost _default_:80>
		DocumentRoot	/var/www/html
		Customlog	logs/default.log combined
	</VirtualHost>
vim news.conf
	<VirtualHost *:80>
        	ServerName      news.zxyos.com
        	DocumentRoot    /var/www/virtual/news/html
        	Customlog       logs/default.log combined
	</VirtualHost>
	<Directory "/var/www/virtual/news/html">
        	Require all granted
	</Directory>
cp news.conf music.conf
vim music.conf     /* :%s/news/music/g */
	<VirtualHost *:80>
        	ServerName      music.zxyos.com
        	DocumentRoot    /var/www/virtual/music/html
        	Customlog       logs/default.log combined
	</VirtualHost>
	<Directory "/var/www/virtual/music/html">
        	Require all granted
	</Directory>
systemctl restart httpd 

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

在这里插入图片描述

步骤四:不同域名对应不同站点,浏览器中输入:

www.zxyos.com
news.zxyos.com
music.zxyos.com

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

8.Apache语言php+cgi+wsgi

(1)php语言

步骤一:建立php语言识别脚本发布文件

vim /var/www/html/index.php
	<?php
        	phpinfo();
	?>

在这里插入图片描述
步骤二:安装php语言插件

yum install -y php
systemctl restart httpd
cd /etc/httpd/conf.d
ls

在这里插入图片描述
在这里插入图片描述
步骤三:浏览器中输入:172.25254.118/index.php
在这里插入图片描述

(2)cgi语言

步骤一:建立cgi语言识别脚本及发布目录、文件

mkdir /var/www/html/cgi
cd /var/www/html/cgi
vim index.cgi
	#! /usr/bin/perl
	print "Content-type: text/html\n\n";
	print `date`;
ls
chmod +x index.cgi
./index.cgi

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤二:浏览器中输入:172.25.254.118/cgi/index.cgi
在这里插入图片描述
步骤三:根据说明(172.25.254.118/manual)修改配置文件

vim /etc/httpd/conf.d/default.conf
	<VirtualHost _default_:80>
        	DocumentRoot    /var/www/html
        	Customlog       logs/default.log combined
	</VirtualHost>
	<Directory "/var/www/html/cgi>
    	Options +ExecCGI
    	AddHandler cgi-script .cgi
	</Directory>

systemctl restart httpd
./index.cgi

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤四:浏览器中输入:172.25.254.118/cgi/index.cgi
在这里插入图片描述
测试selinux在开启状态下的cgi,统一安全上下文

(3)wsgi语言

步骤一:建立wsgi语言识别脚本发布文件

mkdir /var/www/wsgi
cd /var/www/wsgi
ls     /*script.wsig*/
vim script.wsig
	#!/usr/bin/env python
	import time

	def 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]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤二:安装wsgi语言插件

yum search wsgi
yum install -y mod_wsgi.x86_64

在这里插入图片描述
步骤三:创建Apache虚拟主机

cd /etc/httpd/conf.d/
vim vhost.conf
	<VirtualHost *:80>
        	ServerName www.zxyoswsgi.com
        	WSGIScriptAlias / /var/www/wsgi/script.wsgi
	</VirtualHost>
    systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
步骤四:测试中写入解析文件

vim /etc/hosts
	172.25.254.118 www.zxyoswsgi.com

在这里插入图片描述
步骤五:浏览器输入:www.zxyoswsgi.com
在这里插入图片描述

9.https自签名证书,重定向

301—永久重定向
302—临时重定向
http协议默认访问80端口
https协议默认访问443端口

(1)自签名证书

https协议默认访问443端口
步骤一:开启443端口

netstat -tnlp | grep :443
yum install -y mod_ssl
ls
systemctl restart httpd
netstat -tnlp | grep :443

在这里插入图片描述
在这里插入图片描述
步骤二:安装加密软件,genkey www.zxyos.com命令生成认证文件和秘钥

yum install -y crypto-utils
genkey www.zxyos.com

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤三:将认证文件和秘钥写入配置文件

vim /etc/httpd/conf.d/ssl.conf
	SSLCertificateFile /etc/pki/tls/certs/www.zxyos.com.crt
	SSLCertificateKeyFile /etc/pki/tls/private/www.zxyos.com.key

在这里插入图片描述
在这里插入图片描述
步骤四:浏览器中输入:login.zxyos.com,可查看到已生成加密锁和认证书

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

(2)网页重定向

步骤一:设置发布目录,发布文件,将ip及对应域名写入解析文件

vim login.conf
	<VirtualHost *:443>
        	ServerName      login.zxyos.com
        	DocumentRoot    /var/www/virtual/login/html
        	Customlog       logs/default.log combined
        	SSLEngine on
        	SSLCertificateFile /etc/pki/tls/certs/www.zxyos.com.crt
        	SSLCertificateKeyFile /etc/pki/tls/private/www.zxyos.com.key
	</VirtualHost>
	<Directory "/var/www/virtual/login/html">
        	Require all granted
	</Directory>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤二浏览器中输入:login.zxyos.com 不能自动重定向为https://logins.zxyos.com
在这里插入图片描述
在这里插入图片描述
步骤三:重新编辑配置文件,写入重定向信息

vim login.conf
	<VirtualHost *:80>
        	ServerName      login.zxyos.com
        	RewriteEngine   on
        	RewriteRule     ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]  
	</VirtualHost>

在这里插入图片描述
在这里插入图片描述
步骤四浏览器中输入:login.zxyos.com 可以自动重定向为https://logins.zxyos.com
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值