1.什么是apache (Web服务器)?
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行
Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上
由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,也叫网页服务器软件
它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中
同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部,也是一个基金会的名称、一种武装直升机等等
2.什么是http://协议?
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写
是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议
HTTP是基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统
HTTP协议工作于客户端-服务端架构为上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求
Web服务器根据接收到的请求后,向客户端发送响应信息
HTTP工作原理:
HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端
HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据
服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
以下是 HTTP 请求/响应的步骤:
其实也是把服务端的东西共享给客户端
协议的支撑 <------软件 <-----程序
协议是两个人共同商量好的东西
curl -I www.baidu.com 嗅探(查看这些网站的服务名字)
两大主流服务
lamp linux apache mysql php/perl/python
lnmp linux nginx mysql php/perl/python
客户端访问apache服务,然后加载php这个插件,然后调用mysql数据库
apchece ,企业中常用的web服务,用来提供http://(超文本传输协议)
其实也是把服务端的东西共享给客户端的一个过程
协议的支撑 <-----软件 <-----程序
协议是两个人共同商量好的东西
curl -I www.baidu.com 查看网址的服务名字
两大主流服务:
lamp linux apache mysql php/perl/python
lnmp linux nginx mysql php/perl/python
客户端访问aoache服务,然后加在php这个插件,然后调用mysql数据库
apache,企业中常用的web服务,用来提供http://
3.apache的基础信息
主配置目录 | /etc/httpd/conf |
主配置文件 | /etc/httpd/conf/ |
子配置目录 | /etc/httpd/conf.d/ |
子配置文件 | /etc/httpd/conf.d/*.conf |
默认发布目录 | /var/www/html |
默认端口 | 80 |
默认安全上下文 | httpd_sys_content_t |
程序开启默认用户 | apache |
apache日志 | /etc/httpd/logs/* |
4.搭建实验环境
reset desktop虚拟机
配置ip为172.25.254.115,在此虚拟机上,搭建apache-web服务器,安装httpd服务,开启,并且设置开机启动。
在防火墙中加入http
安装apache的手册
重启服务
在firefox中输入:http://172.25.254.115/manual
rpm -qc httpd 查看主配置文件
在apache的默认发布目录下创建一个index.html,并编辑
在浏览器中输入http://172.25.254.115/index.html
1.修改httpd的服务端口
vim /etc/httpd/conf/httpd.conf 编辑httpd的主配置文件
搜Listen 将端口80改为8080,默认使用端口8080
重启服务
netstat -antlupe | grep httpd 查看httpd的端口
在firefox中输入,http://172.25.254.115:80,此时显示不能连接
而输入http://172.25.254.115:8080,发现也不能进入
给防火墙加入8080端口,即可进入
2.修改默认发布文件
恢复80端口
重启服务
cd /var/www/html/
ls 查看默认发布文件index.html
vim westos.html 再编写一个文件
<h1>westos page</h1>
直接在浏览器中输入172.25.254.115默认访问的是index.html,只有输入172.25.254.115/westos.html才可以访问westos.html
在配置文件中,将默认发布文件index.html改为westos.html
vim /etc/httpd/conf/httpd.conf
在164行,将westos.html写在index.html之前,系统会默认按照顺序来确定默认发布文件,所以当westos.html存在时,默认的发布文件是它,如果当它不存在时候,那就是index.html
重启服务 验证结果
浏览器中输入172.25.254.115
默认发布文件确实已经更改成为了westos.html
3.修改默认发布目录
mkdir -p /westos/html 新建一个目录,让它当作新的默认发布目录
vim /westos/html/index.html 编写发布目录下的发布文件
<h1>westos html change</h1>
vim /etc/httpd/conf/httpd.conf中119行,复制一行,注释掉原来的
将默认发布目录由/var/www/html改成/westos/html
重启服务
在浏览器中输入172.25.254.115发现并不能找到,是因为新建的默认发布目录没有授权
Require all granted 允许共享该目录下的文件
重启服务
在浏览器中输入172.25.254.115,即可找到
7.apache访问控制
先将所有配置恢复至初始。
然后配置
Order表示先后顺序,先Allow 后 Deny,这个意思就是先允许所有人访问,然后再拒绝172.25.254.115访问,如果将Deny在前而Allow在后,就为先拒绝172.25.254.115,再允许所有人,允许覆盖了拒绝,所以等于没有设置。
此时用172.25.254.115登陆,http://172.25.254.115发现并不能载入
而用真机,172.25.25.60登陆,就可以载入
8.指定用户访问
先建立用户认证文件
cd /etc/httpd/conf/
htpasswd -cm westosuser admin建立admin用户,并输入密码
htpasswd -m westosuser admin1 建立admin1用户,并输入密码,如果再次-cm的话,会将之前的创建的admin用户覆盖,用-m就不会覆盖。
cat westosuser
vim /etc/httpd/conf/httpd.conf
在/var/www/html/下建立一个westos目录
进入浏览器 Ctrl+Shift+Delete清除缓存,输入http://172.25.254.115/westos
输入admin 密码123
如果使用admin1登陆的话,就会发现不能登陆
这时候把用户认证去掉,打开允许所有用户访问
重启服务
发现此时admin1也可以登陆
也可以登陆 test.html
9.让一台apache主机有多个站点
目的:让apache服务器上news/music都有自己的默认发布目录和默认发布文件
cd /etc/httpd/conf.d/ 默认发布目录
vim defaults.conf 编辑虚拟主机的配置文件,必须以.conf结尾
创建news.conf和music.conf编辑配置文件
打开真机,在本地解析文件中输入172.25.254.115 www.westos.com news.westos.com music.westos.com
给music和news创建默认发布目录
创建默认发布文件
在真机firefox浏览器,输入news.westos.com
10.apache支持的语言(html php cgi)
在/var/www/html下编写一个php语言默认发布文件
vim index.php
<?php
phpinfo();
?>
重启服务
在浏览器中输入172.25.254.115/index.php发现什么也没有
安装php
重启httpd服务
在浏览器中输入 172.25.254.115/index.php即可看到php的表格
cgi语言
浏览器中输入172.25.254.115/manual查看手册,看设置cgi语言需在配置文件写什么内容
选CGI查看然后粘贴
cd /var/www/html 进入默认发布目录
mkdir cgi在默认发布目录下建立cgi目录
cd cgi
vim index.cgi 写cgi的默认发布文件
chmod +x index.cgi 既然是脚本所以要给它一个可执行的权限
./index.cgi可以看到时间调用脚本,看能否看到时间
cd /etc/httpd/conf.d
vim default.conf 编辑配置文件
加入
cgi必须要在配置文件中加入这个字段才会生效
==重启服务==
再次在浏览器输入172.25.254.115/cgi/index.cgi发现显示的不再是源码
wsgi语言
在/var/www下建立wsgi目录,
从172.25.254.250下载python脚本,将此脚本文件放入/var/www/wsgi下
用python调用此脚本发现不能调用,所以下载wsgi插件,yum install mod_wsgi
cd /etc/httpd/conf.d
ls---->vim default.conf
重启服务
切换到真机172.25.254.60 做本地解析
11.https加密访问
HTTPS:Secure Hypertext Transfer Protocol(安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
特点:https是经过加密的传输加密方式是通过用安全套接字层(SSL)
HTTPS和HTTP的区别主要为以下四点:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
安装apache服务加密插件mod_ssl
cd /etc/httpd/conf.d 下有ssl.conf文件
添加https到防火墙中
重启服务,查看https的端口是否开启
此时在浏览器中输入 https://172.25.254.115会发现:授权部门没有授权,认为不安全,所以警告。
==解决方法:==Advice(高级选项)->Get Certificate(获得证书)。Confirm确定就可以看到信息
以上生成的证书无签名无密钥,还没有自己的证书和密钥,所以需要自己制作证书和密钥。
自签名证书
yum install crypto-utils -y 安装相应的工具
genkey www.westos.com 对该域主机生成证书和钥匙
这里要选择No 否则会向CA申请
填完信息就会生成钥匙和密码,随机敲击键盘使得加密字符足够。
生成加密的密钥和证书,apache必须要知道,所以在配置文件中写入
vim /etc/httpd/conf.d/ssl.conf
然后重启服务 在浏览器中输入https://172.25.254.115
此时就可以使用https加密服务了
网页重定向
会发现如果在浏览器中输入http://172.25.254.115时候,不会自动跳到https://172.25.254.115下。
那如何配置才能让172.25.254.115:80 自动跳转至172.25.254.115:443呢?
在子配置目录下内配置login.conf文件
创建发布目录和文件
重启服务
在真机的本地解析中加入login.westos.com
然后输入https://login.westos.com 可以看到
重启服务
在真机中输入http://login.westos.com就可以自动跳入到https://login.westos.com了。