linux中的apache配置Part_02.apache高级配置

本文详细介绍Apache服务器如何配置基于域名的虚拟主机,包括不同域名访问显示不同页面的方法,以及基于IP和用户的访问控制策略。此外,还介绍了如何实现HTTPS加密访问及网页重定向。

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

1.apache虚拟主机

 基于域名的虚拟主机,在同一个ip上配置多个域名,并且都通过80端口访问
 可以让我们的一台apache服务器在被访问不同域名的时候显示不同的主页
 在实验之前,我们需要先还原默认配置,以便实验进行;
本实验中设置两台虚拟主机:news.westos.com;music.westos.com
我们需要在进行不同的域名访问时显示不同的页面
1.首先设置两个虚拟主机的默认发布目录与测试文件:
在这里插入图片描述
2.写子配置文件:
#1.配置文件a_defaults.conf:

 vim a_defaults.conf	
  1 <VirtualHost _default_:80>					##虚拟主机开启的端口
  2         DocumentRoot /var/www/html			##虚拟主机的默认发布目录
  3         CustomLog logs/defualts.log combined	##虚拟主机的日志;combined:所有类型的日志
  4 </VirtualHost>					

在这里插入图片描述
在这里插入图片描述
#3.配置news.westos.conf的配置文件:

vim news.conf 		
  1 <VirtualHost *:80>
  2         ServerName news.westos.com					##指定虚拟主机域名
  3         DocumentRoot /var/www/westos.com/news/html/	##此虚拟主机默认发布目录
  4         CustomLog logs/news.log combined			##此虚拟主机的日志
  5 </VirtualHost>
  6 <Directory "/var/www/westos.com/news/html/">		##默认发布目录的访问授权
  7         Require all granted							##所有人都允许访问
  8 </Directory>

在这里插入图片描述
#4.配置music.westos.com 的配置文件:
与news主机的配置类似,只在配置文件中将news改为music即可:
在这里插入图片描述
3.以上配置完成后,重启apache服务,在测试端配置本地解析:
在这里插入图片描述
访问www.westos.com结果如下:
在这里插入图片描述
访问news.westos.com结果如下:
在这里插入图片描述
访问music.westos.com结果如下:
在这里插入图片描述

2.apache访问控制:

1.基于ip的访问控制
首先,在未禁止指定ip访问前,我们访问www.westos.com,可以看到如下结果:
在这里插入图片描述
修改子配置文件如下:

vim a_defaults.conf 
  5 <Directory "/var/www/html">
  6         Order Deny,allow			##Order:定义顺序,后读取的列表会覆盖先读取的列表
  7         Deny from all				##拒绝所有的ip的访问
  8         allow from 172.25.150.250	##只允许250主机访问
  9 </Directory>

在这里插入图片描述
在250主机访问如下:
在这里插入图片描述
250主机可以正常访问,使用172.25.150.150主机(即apache-server本身),我们可以看到不能访问:
在这里插入图片描述
若将配置文件修改如下,由于先读取Allow,则后读取的Deny会将Allow的信息覆盖,此时效果为拒绝所有ip的访问:
在这里插入图片描述
刚才可以访问的250主机此时也被禁止:
在这里插入图片描述
2.基于用户的访问控制:
#1.创建用户文件:

 htpasswd -cm http_userlist admin
		##-c:create,新建(注意:在文件中追加用户时,不能使用此参数)
		##-m:指定用户问价名称
		##admin:添加的用户admin

在这里插入图片描述
#2.修改配置文件:

 vim a_defaults.conf 
 12 <Directory "/var/www/html">
 13         AuthUserFile /etc/httpd/conf.d/http_userlist		##认证用户的文件
 14         AuthName "please input your account and password!"	##在认证时页面显示的信息
 15         AuthType basic					##认证类型:基本认证,只需要账户密码即可
 16         Require user admin				##在认证文件的用户中只有admin用户才可以访问
 17         #Require valid-user     		##在认证文件中的用户都可以访问
 18 </Directory>

在用户文件中的所有用户都可以访问:
在这里插入图片描述
重启服务,在访问www.westos.com,可以看到此时访问需要输入账户与密码:
在这里插入图片描述
输入admin的账户与密码:
在这里插入图片描述
访问成功:
在这里插入图片描述#2.改为只有用户文件中的admin才可以访问:
在这里插入图片描述
重启服务,再使用admin1的账户与密码访问:
在这里插入图片描述
访问失败,要求重新输入账户与密码:
在这里插入图片描述
使用admin访问:
在这里插入图片描述
成功:
在这里插入图片描述

3.http支持语言

1.html语言
2.php语言:
#1.写php测试脚本
在这里插入图片描述
#2.安装php
在这里插入图片描述
#3.重启apache服务:
在这里插入图片描述
此时访问ww.westos.com可看到 如下结果:
在这里插入图片描述
3.perl语言
#1.cgi-bin/下的cgi程序
在这里插入图片描述
给此文件执行权限:
在这里插入图片描述
在浏览器中访问:http://172.25.254.139/cgi-bin/index.cgi
在这里插入图片描述
#2.其他目录下的cgi程序
1.例如在/var/www/html/cgi中的test.cgi:
在这里插入图片描述
若直接访问,则结果如下:
在这里插入图片描述
2.在主配置文件中修改:

 vim a_defaults.conf 
  5 <Directory "/var/www/html/cgi">		##指定一个对象,下面内容是对此对象的描述
  6         Options ExecCGI				##下面类型的文件可执行
  7         AddHandler cgi-script .cgi	##cgi-script和.cgi格式的文件为cgi文件
  8 </Directory>

在这里插入图片描述
3.selinux开启情况下更改安全上下文
在这里插入图片描述
完成后,重启服务,再访问,结果如下:
在这里插入图片描述
#3.python语言
wsgi是cgi的加密格式,将测试文件webapp.wsgi(一段python程序)放在/var/www/cgi-bin/下:
在这里插入图片描述
安装插件:yum install mod_wsgi.x86_64 -y
在这里插入图片描述
建立虚拟主机:webapp.westos.com
在这里插入图片描述
重启apache,配置本地解析,直接访问webapp.westos.com,可看到程序被执行:
在这里插入图片描述

4.http加密访问:https

1.安装软件:

 yum install mod_ssl -y			
 yum install crypto-utils.x86_64 -y

在这里插入图片描述
在这里插入图片描述
2.生成密钥对:

genkey www.westos.com	##为此域名生成SSL证书和私钥

在这里插入图片描述
生成密钥流程如下:
在这里插入图片描述
选择密钥长度为1024bit
在这里插入图片描述
等待读条
在这里插入图片描述
收集随机数,此处可能需要敲键盘:
在这里插入图片描述
不发送证书
在这里插入图片描述
不对私钥进行加密:
在这里插入图片描述
输入证书信息:
在这里插入图片描述
完成后,可以看到:
在这里插入图片描述
在apache子配置目录下的ssl.conf文件中替换密钥与证书为我们新生成的密钥与证书:
在这里插入图片描述
在这里插入图片描述
完成后,重启apache服务,访问https://ww.westos.com,查看此网站的证书,可以看到此证书就是我们刚才生成的证书:
在这里插入图片描述
3.网页重启
经过以上步骤,我们就可以使用https进行访问,但是若在访问时不指定使用https的方式,则默认使用http方式进行访问,这就造成了一些不便,我们需要在只输入域名访问后,自动跳转到https的访问方式
目标:在访问login.westos.com时自动跳转为https的访问方式
方法如下:
#1.建立默认发布目录与文件:
在这里插入图片描述
#2.虚拟主机login.westos.com配置文件:
在这里插入图片描述
在这里插入图片描述
参数含义如下:

 1 <VirtualHost *:443>
  2         SSLEngine on			##在这台主机上开启ssl功能
  3         ServerName login.westos.com
  4         DocumentRoot /var/www/westos.com/login/html/
  5         CustomLog logs/login.log combined
  6         SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt		##以下是生成的密钥对
  7         SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
  8 </VirtualHost>
  9 <Directory "/var/www/westos.com/login/html/">	##授权访问
 10         Require all granted
 11 </Directory>
 12 <VirtualHost *:80>				
 13         RewriteEngine On			##开启网页重启功能
 14         ServerName login.westos.com
 15         RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]	##重启规则
 16 </VirtualHost>

^(/.*)$			##表示(获取到)客户在浏览器地址栏中输入的所有字符
https://		##强制客户加密访问
%{HTTP_HOST}	##客户请求主机,即需要访问的域名
$1				##$1表示获取到的^(/.*)$的值
[redirect=301]	##永久重写,301表示永久重写	##返回值有区别,返回值为:200:临时;304:永久

配置完成后,重启服务,访问login.westos.com,此时自动跳转为https访问方式,下载证书,可看到如下界面:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值