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/*
将selinux打开为enforcing,再reboot
apache服务,支持超文本传输的软件
selinux会影响apache
在ip为172.25.254.170的这台虚拟机上搭建apache-web服务器
yum install httpd -y 安装apache软件
netstat -antlupe | grep httpd(查看httpd的服务端口80是否开启)
firewall-cmd --list-all ##列出火墙信息
firewall-cmd --permanent --add-service=http ##在火墙里面添加http服务
firewall-cmd --reload ##重新加载使添加生效
yum install httpd-manual ##apache的手册
cd /var/www/html(httpd安装了以后才会有这个共享目录)
ls
cd /etc/httpd/conf((主配置目录)
ls
cd ..(返回上一级目录)
ls
cd conf.d(子配置目录)
ls
rpm -qc httpd查看主配置文件
rpm -qd httpd
rpm -ql httpd查看主配置目录
测试 http://172.25.254.170
/var/www/html ##apache的/目录,默认发布目录
/var/www/html/index.html ##apache的默认发布文件
vim /var/www/html/index.html
<h1> hello westos </h1>
` :wq
apache服务的相关设置
先systemctl status httpd查看apache是否开启
再firewall-cmd --list-all查看火墙是否允许apache服务
在浏览器里面输入172.25.254.170查看是否能访问apache共享出来的东西
(1)修改httpd服务的端口
vim /etc/httpd/conf/httpd.conf编辑httpd的主配置文件
搜Listen 将端口由80改为8080默认使用端口80
systemctl restart httpd重启才会生效
netstat -antlupe | grep httpd 查看端口是否改为8080查看端口是否修改成功
firewall-cmd --permanent --add-port=8080/tcp在火墙里面添加8080端口
firewall-cmd --reload加载使其生效
输入172.25.254.111:8080
输入172.25.254.170:8080
(2)修改默认发布文件
vim /etc/httpd/conf/httpd.conf
将端口改为80
systemctl restart httpd
cd /var/www/html 默认发布目录
ls
vim test.html在默认发布目录下面再编写一个文件,看会不会被默认共享
<h1>test'page</h1>
直接172.25.254.170访问的是index.html
输入172.25.254.170/test.html 才可以访问test.html
vim /etc/httpd/conf/httpd.conf
搜index.html
改为test.html将默认发布文件由index.html改为test.html
systemctl restart httpd
输入172.25.254.170直接看到test.html的内容
vim /etc/httpd/conf/httpd.conf
写入index.html test.html将二者都写入
systemctl restart httpd
(3)修改默认发布目录
cd /var/www/html 默认发布目录
mkdir -p /meng/html新建一个目录,让它成为默认发布目录
vim /meng/html/index.html编写默认发布文件
vim /etc/httpd/conf/httpd.conf
搜/Doc找默认发布目录那一行
复制一行,注释掉原来的,防止自己手写把格式写错
/var/www/html----->/meng/html将默认发布目录改为/meng/html
systemctl restart httpd重启服务才会生效
apache内部的访问控制
cd /etc/httpd/conf.d/
ls
vim vhost.conf编辑虚拟主机的配置文件
systemctl restart httpd
1)针对主机ip的访问控制
基于ip的访问控制,允许哪个ip可以访问,哪个ip不可以访问
allow,deny会有一个读取的先后顺序,后面的会覆盖前面的,相当于设置访问apache服务器的黑白名单
<Directory "/var/www/html/test">
Order Allow,Deny ##列表读取顺序,后读取的列表会覆盖前面列表内容的重复部分
Allow from All
Deny from 172.25.254.170
</Directory>相当于黑名单
<Directory "/var/www/html/test">
Order Deny,Allow ##列表读取顺序,后读取的列表会覆盖前面列表内容的重复部分
Allow from 172.25.254.111
Deny from All
</Directory> 相当于白名单
2)用户方式的访问控制
先建立用户认证文件
cd /etc/httpd/在该目录下面
ls
htpasswd --help查看参数
htpasswd -cm .apache_auth admin建立admin用户
输入密码
cat .apache_auth查看该文件
htpasswd -cm .apache_auth lee建立lee用户,-c会重新建立用户认证文件,覆盖之前的admin用户
输入密码会覆盖之前的用户
htpasswd -m .apache_auth admin(追加用户在文件里面不需要-c)
输入密码
cat .apache_auth
htpasswd -cm /etc/httpd/userpass admin建立admin用户
htpasswd -m /etc/httpd/userpass admin1追加admin1用户
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支持的语言(html php cgi wsgi)
html php perl python jsp asp
1)php语言的设置
cd /var/www/html切换到默认发布目录下
ls 查看一下默认发布文件的语言类型,基本是html
编写一个php语言的默认发布文件
vim index.php
<?php
phpinfo();
?>
vim /etc/httpd/conf/httpd.conf
index.php加入这个默认发布文件
systemctl restart httpd
cd /etc/httpd/conf.d/
ls
在浏览器里面输入172.25.254.170就可以看到php的表格了
https加密访问
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议)
是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL
它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。
https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。
这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。
现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
TTPS和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协议安全。
客户端访问服务器的时候客户端那边是不安全的,虽然服务端自己很安全,但不能保证客户端访问服务端的时候客户端是安全的,因此可能会造成服务端不安全
https协议是加密访问
在能上网的真机里面输入www.baidu.com,发现会自动跳转到https://www.baidu.com