web服务软件apache的详解

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日志/etc/httpd/logs/*

搭建apache-web服务器

(1)yum search apache寻找安装包

在这里插入图片描述

(2)yum install httpd -y 安装apache软件

在这里插入图片描述

(3)systemctl start httpd开启apache服务
systemctl enable httpd 开机启动

在这里插入图片描述

(4)netstat -antlupe | grep httpd(查看httpd的服务端口80是否开启)

在这里插入图片描述

(5)firewall-cmd --list-all				##列出火墙信息
firewall-cmd --permanent --add-service=http	##在火墙里面添加http服务   
firewall-cmd --reload				##重新加载使添加生效

在这里插入图片描述

(6)rpm -ql httpd查看主配置目录

在这里插入图片描述

(7)测试发布的内容

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

apache服务的相关配置

(1) 修改httpd服务的端口

(1)
vim /etc/httpd/conf/httpd.conf编辑httpd的主配置文件
搜Listen 将端口由80改为8080默认使用端口80
systemctl restart httpd重启才会生效

在这里插入图片描述

(2)netstat -antlupe | grep httpd 查看端口是否改为8080查看端口是否修改成功

在这里插入图片描述

(3)firewall-cmd --permanent --add-port=8080/tcp在火墙里面添加8080端口
firewall-cmd --reload加载使其生效

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

(1)semanage port -l | grep http查看http服务可以使用的端口

在这里插入图片描述

(2)semanage port -a -t http_port_t -p tcp 6666在httpd服务中加入6666端口
semanage port -l | grep http 再次查看http服务可以使用的端口 

在这里插入图片描述
(2)修改默认发布文件

(1)vim /etc/httpd/conf/httpd.conf
将端口改为80
为了接下来的实验方便
systemctl restart httpd

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

(2)cd /var/www/html 默认发布目录
ls查看默认发布文件 index.html
vim test.html在默认发布目录下面再编写一个文件,看会不会被默认共享
<h1>test'page</h1>

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

(3)vim /etc/httpd/conf/httpd.conf
搜index.html
改为test.html将默认发布文件由index.html改为test.html
systemctl restart httpd

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

(1)  cd /var/www/html 默认发布目录
mkdir -p /xin/html新建一个目录,让它成为默认发布目录
vim /xin/html/index.html编写默认发布文件

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

(2)vim /etc/httpd/conf/httpd.conf
搜/Document找默认发布目录那一行
/var/www/html----->/xin/html将默认发布目录改为/xin/html
systemctl restart httpd重启服务才会生效

在这里插入图片描述

(3)vim /etc/httpd/conf/httpd.conf
加入授权信息:
<Directory "/xin/html">
     Require all granted允许共享改目录下面的东西
</Directory>
systemctl restart httpd

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

(4)若setenforce 1    开启selinux (enforcing)
输入172.25.254.114 不可以,因为自己新建的发布目录与默认发布目录的安全上下文不一致
ls -Zd /var/www/html查看默认发布目录的安全上下文
ls -Zd /xin/html 查看新建目录的安全上下文

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

apache的虚拟主机(让一台apache主机有多个站点)

(1) 对于百度而言,它有很多域名站点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目的使我的apache服务器上的news、music都有自己的默认发布目录和默认发布文件
但是一台主机一个站点太浪费资源了,我在apache主机上搭建虚拟机主机,使每个虚拟主机对应一个域名

(1)cd /etc/httpd/conf.d/  默认发布子目录
ls
vim vhost.conf(编辑虚拟主机的配置文件,主配置文件里面有要求,必须以.conf结尾)

在这里插入图片描述

(2)<VirtualHost _default_:80>虚拟主机的apache服务默认也使用端口80
      DocumentRoot /var/www/html根共享目录
      CustomLog logs(etc/httpd/logs)/default.log combined日志的目录
</VirtualHost>

在这里插入图片描述

(3)mkdir -p /var/www/vhost/news给news建立默认发布目录
mkdir -p /var/www/vhost/music给music建立默认发布目录

vim /var/www/vhost/news/index.html给news编写默认发布文件
<h1>news's page</h1>

vim /var/www/vhost/music/index.html给music编写默认发布文件
<h1>music's page</h1>

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

(4)
<VirtualHost_default_:80>
      DocumentRoot /var/www/html
      CustomLog logs/default.log combined
</VirtualHost>
以上是虚拟主机的默认基本信息
<VirtualHost *:80>
	ServerName news.westos.com
	DocumentRoot /var/www/vhost/news
	CustomLog logs/news.log combined
</VirtualHost>
<Directory "/var/www/vhost/news">
	Require all granted
</Directory>
以上是news这个虚拟站点的基本信息和授权信息
<VirtualHost *:80>
	ServerName music.westos.com
	DocumentRoot /var/www/vhost/music
	CustomLog logs/music.log combined
</VirtualHost>
<Directory "/var/www/vhost/music">
	Require all granted
</Directory>
以上是music这个虚拟站点的基本信息和授权信息
systemctl restart httpd重启才会生效

在这里插入图片描述

(5)在真机里面vim /etc/hosts做本地解析(使用哪里的浏览器进行测试就在哪里做解析)
172.25.254.114  www.westos.com news.westos.com music.westos.com

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

apache内部的访问控制

(1)针对主机ip的访问控制

基于ip的访问控制,允许哪个ip可以访问,哪个ip不可以访问
allow,deny会有一个读取的先后顺序,后面的会覆盖前面的
相当于设置访问apache服务器的黑白名单

<Directory "/var/www/html">
Order Allow,Deny		##列表读取顺序,后读取的列表会覆盖前面列表内容的重复部分
Allow from All
Deny from 172.25.254.114
</Directory>相当于黑名单

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

(2)
<Directory "/var/www/html">
Order Deny,Allow		##列表读取顺序,后读取的列表会覆盖前面列表内容的重复部分
Allow from 172.25.254.114
Deny from All 
</Directory>  相当于白名单

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)用户方式的访问控制(比ip安全)

(1) cd /etc/httpd/在该目录下面
htpasswd -cm .apache_auth admin建立admin用户
输入密码
htpasswd -cm	/etc/httpd/userpass	admin建立admin用户
htpasswd -m 	/etc/httpd/userpass	admin1追加admin1用户

在这里插入图片描述

(2)cd /etc/httpd/conf.d/
ls
vim vhost.conf

<Directory "/var/www/html">
AuthUserFile /etc/httpd/.apache_auth 认证文件类型
AuthType basic认证类型,基本
AuthName "Please input username and password"认证名字
#Require user admin 只允许admin用户通过认证访问共享目录
#Require valid-user允许所有用户访问
以上两个二选一区别
</Directory>

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

apache支持的语言

(1)php语言的设置

(1)cd /var/www/html切换到默认发布目录下
ls 查看一下默认发布文件的语言类型,基本是html

在这里插入图片描述

(2)编写一个php语言的默认发布文件
vim index.php
<?php
   phpinfo();
?>

在这里插入图片描述

(3)yum insatll php -y安装这个服务
在浏览器里面输入172.25.254.114  就可以看到php的表格了

在这里插入图片描述
在这里插入图片描述
(2)perl语言的设置

(1) 172.25.254.114/manual/查看apache服务手册,看设置cgi语言都需要在配置文件里面写入哪些内容

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

(2)cd /var/www/html
ls
mkdir cgi在默认发布目录下建立cgi目录
cd cgi/
ls
vim index.cgi写cgi的默认发布文件编写cgi语言的默认发布文件

写入刚刚粘贴的东西
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
这个相当于一个测试的脚本

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

(3)chmod +x index.cgi脚本要给一个可以执行的权限
cd /etc/httpd/conf.d/
ls
vim vhost.conf编辑虚拟主机的配置文件

在这里插入图片描述

(4)<Directory "/var/www/html/cgi">
       Options +ExecCGI
       AddHandler cgi-script .cgi
 </Directory>
 要使用cgi语言就要添加这个才会生效,手册要求

在这里插入图片描述

(5)getenforce
setenforce 0(设置selinux为permissive)

在这里插入图片描述
在这里插入图片描述
(3)python语言的设置

(1) yum search wsgi
yum install mod_wsgi.x86_64 -y

在这里插入图片描述

(2) cd /var/www/html
   vim script.wsgi
   chmod +x script.wsgi

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

(3) cd /etc/httpd/conf.d/
ls
vim vhost.conf
systemctl restart httpd

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

https加密访问

HTTPS和HTTP的区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密
如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。
为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

(1)apache服务加密
这个加密锁需要开启443端口
netstat -antlupe | grep httpd

在这里插入图片描述

(2)apache服务器上面安装锁
yum install mod_ssl -y

在这里插入图片描述

(3)cd /etc/httpd/conf.d/
ls
vim ssl.conf可以看到443端口
systemctl restart httpd

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

(4) firewall-cmd --permanent --add-service=https在火墙里面添加https服务
firewall-cmd --reload

在这里插入图片描述

(5)yum install crypto-utils -y  安装自己的加密
genkey www.westos.com 生成自己的锁和钥匙

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

(6)cd /etc/httpd/conf.d/
ls
vim ssl.conf
写入自己的钥匙和密码
systemctl restart httpd

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

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

(1)cd /etc/httpd/conf.d/
ls
vim vhost_https.conf

在这里插入图片描述

(2) <VirtualHost *:443>建立一个443端口虚拟主机,https需要开启443端口
   ServerName login.westos.com
  DocumentRoot /var/www/vhost/login建立默认发布目录
  CustomLog logs/login.log combined
  SSLEngine on
   SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
   </VirtualHost>
   
    <Directory "/var/www/html/vhost/login">
    Require all granted
     </Directory>

在这里插入图片描述

(3)mkdir -p /var/www/vhost/login建立默认发布目录
vim /var/www/vhost/login/index.html建立默认发布文件
<h1>login test page</h1>
systemctl restart httpd

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

(4) 做本地解析:(浏览器在哪在就哪做本地解析)
vim /etc/hosts
测试:浏览器输入:https://login.westos.com
输入login.westos.com不会自动到 https://login.westos.com

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

(1) <VirtualHost *:80>建立一个80端口的虚拟主机
     ServerName login.westos.com
     RewriteEngine on 将网页重写的功能开启
     RewriteRule  ^(/.*)$  https://%{HTTP_HOST}$1 [redirect=301](永久重定向:永久跳转)
        客户端输入的内容        客户端主机
</VirtualHost>
systemctl restart httpd

在这里插入图片描述

(2) 测试:输入login.westos.com------>https://login.westos.com 成功

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值