WEB服务简介
# 目前最主流的三个Web服务器是Apache、Nginx、 IIS。
- Web服务器一般指网站服务器,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
- WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。
- 服务器是一种被动程序只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应
WEB 服务协议
# WEB 服务应用层使用HTTP协议。
# HTML(标准通用标记语言下的一个应用)文档格式。--index.html
# 浏览器统一资源定位器(URL)。
# 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
# WWW 采用的是浏览器/服务器结构
#web服务器只能解析静态页面。 动态页面:只要和数据库进行连接的都属于动态页面,比如java写的代码,PHP的代码,python的代码。
#web服务器:apache (参考服务器配置、优化。静态并发量最高2000) nginx(tengine) IIS #端口全部为80!https为443端口
Apache服务的搭建与配置
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
Apache的主程序名叫httpd。
Apache安装配置
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld # 永久关闭防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install httpd # 下载安装httpd
[root@localhost ~]# systemctl start httpd # 开启httpd服务
[root@localhost ~]# netstat -lntp | grep 80
tcp6 0 0 :::80 :::* LISTEN 3135/httpd
# 端口80.可以改
index.html:默认主页名称
默认发布网站的目录:/var/www/html
系统产生apache账户,家目录是:/var/www
apache目录介绍
apache的工作目录(基准目录)
conf 存储配置文件
conf.d 存储配置子文件
logs 存储日志
modules 存储模块
run 存储Pid文件,存放的pid号码。是主进程号
认识主配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" #工作目录
Listen 80 #监听端口
Listen 192.168.2.8:80 # 指定监听的本地网卡 可以修改
User apache # 子进程的用户,有可能被人改称www账户
Group apache # 子进程的组
ServerAdmin root@localhost # 设置管理员邮件地址
DocumentRoot "/var/www/html" # 发布网站的默认目录,想改改这里。
IncludeOptional conf.d/*.conf # 包含conf.d目录下的*.conf文件
# 设置DocumentRoot指定目录的属性
<Directory "/var/www/html"> # 网站容器开始标识
Options Indexes FollowSymLinks # 找不到主页时,以目录的方式呈现,并允许链接到网 站根目录以外
AllowOverride None # 对目录设置特殊属性:none不使用.htaccess控制,all 允许
Require all granted # granted表示运行所有访问,denied表示拒绝所有访问
</Directory> # 容器结束
DirectoryIndex index.html # 定义主页文件,当访问到网站目录时如果有定义的 主页文件,网站会自动访问
访问控制
准备测试页面
[root@localhost ~]# echo 'test......' > /var/www/html/index.html #编写测试文件
访问控制测试
Apache默认允许所有主机可访问
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf # 编辑组配置文件
[root@localhost ~]# systemctl restart httpd # 修改配置文件后重启服务
![](https://img-blog.csdnimg.cn/img_convert/e49fb351dfdb3fafedc6158e7f812219.png)
Require all granted # 默认所有人可访问
[root@localhost ~]# curl -I 192.168.56.120
HTTP/1.1 200 OK
Date: Tue, 28 Feb 2023 12:49:16 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Tue, 28 Feb 2023 12:04:18 GMT
ETag: "c-5f5c1653028bb"
Accept-Ranges: bytes
Content-Length: 12
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# curl 192.168.56.120
test......
只拒绝一部分客户端访问:
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf # 编辑组配置文件
[root@localhost ~]# systemctl restart httpd # 修改配置文件后重启服务
![](https://img-blog.csdnimg.cn/img_convert/c0af0ae952a4e79d80e5ab016df44015.png)
<RequireALL> # 需要添加此标签,否则不生效
Require not ip 192.168.56.110 # 拒绝链接的IP,多个空格隔开
</RequireALL>
[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 403 Forbidden
Date: Thu, 02 Mar 2023 11:43:05 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
拒绝所有人连接
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
131<Directory "/var/www/html">
132 Options Indexes FollowSymLinks
133 ALLowOverride None
134 <RequireALL>
135 Require all denied136 </RequireALL>
137 </Directory>
[root@localhost ~]# systemctl resatrt httpd
![](https://img-blog.csdnimg.cn/img_convert/ec26ef77ca08ea73ea3822025bfe3c33.png)
[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 403 Forbidden
Date: Thu, 02 Mar 2023 11:46:25 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
修改默认网站发布目录
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
119 DocumentRoot "/www" # 修改网站根目录为/www
131 <Directory "/www"> # 把这个也对应的修改为/www
[root@localhost ~]# mkdir /www
[root@localhost ~]# echo 'abc..def...ghj...' >> /www/index.html
[root@localhost ~]# cat /www/index.html
abc..def...ghj...
[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 11:51:15 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 11:48:57 GMT
ETag: "12-5f5e969f14d15"
Accept-Ranges: bytes
Content-Length: 18
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# curl 192.168.56.110
abc..def...ghj...
虚拟主机
虚拟主机:多个网站在一台服务器上。web服务器都可以实现。
三种:基于域名 基于端口 基于Ip
基于域名
[root@localhost ~]# cd /etc/httpd/conf.d/
[root@localhost conf.d]# vim test.conf
<VirtualHost *:80> #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ip
DocumentRoot /soso #指定发布网站目录,自己定义
ServerName www.soso666.com #指定域名,可以自己定义
<Directory "/soso/">
AllowOverride None #设置目录的特性,如地址重写
Require all granted #允许所有人访问
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /soho
ServerName test.soso666.com
<Directory "/soho/">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
[root@localhost ~]# mkdir /soso #创建发布目录
[root@localhost ~]# mkdir /soho
[root@localhost ~]# echo qianfen > /soso/index.html #创建测试页面
[root@localhost ~]# echo qfedu > /soho/index.html
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# vim /etc/hosts
![](https://img-blog.csdnimg.cn/img_convert/c98989a01cf66e83dbaa18a5aec71f7b.png)
测试访问
[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:48:51 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:08 GMT
ETag: "8-5f5ea32eb06a2"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# curl -I www.soso666.com
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:49:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:08 GMT
ETag: "8-5f5ea32eb06a2"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# curl -I test.soso666.com
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:49:24 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:17 GMT
ETag: "6-5f5ea33706f38"
Accept-Ranges: bytes
Content-Length: 6
Content-Type: text/html; charset=UTF-8
基于端口
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
![](https://img-blog.csdnimg.cn/img_convert/38069bf62d7a702b04c439a1e9ced864.png)
[[email protected] ~]# vim /etc/httpd/conf.d/test.conf
<VirtualHost *:80>
DocumentRoot /soso
ServerName www.soso666.com
<Directory "/soso/">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:81> #修改端口
DocumentRoot /soho
ServerName test.soso666.com
<Directory "/soho/">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
[[email protected] ~]# systemctl restart httpd
测试访问:
[root@localhost ~]# curl -I www.soso666.com
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:54:06 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:08 GMT
ETag: "8-5f5ea32eb06a2"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# curl -I www.soso666.com:81
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:54:23 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:17 GMT
ETag: "6-5f5ea33706f38"
Accept-Ranges: bytes
Content-Length: 6
Content-Type: text/html; charset=UTF-8
基于IP
[root@localhost ~]# ifconfig ens33:0 192.168.56.111 # 添加一个临时IP
[root@localhost ~]# vim /etc/httpd/conf.d/test.conf
[root@localhost ~]# systemctl restart httpd
![](https://img-blog.csdnimg.cn/img_convert/d981d33d35b7296e39045b32f9f15b21.png)
测试访问:
[root@localhost ~]# curl -I 192.168.56.111
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 13:03:41 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 11:48:57 GMT
ETag: "12-5f5e969f14d15"
Accept-Ranges: bytes
Content-Length: 18
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 13:03:45 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:08 GMT
ETag: "8-5f5ea32eb06a2"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html; charset=UTF-8