web服务器 -web虚拟主机详解 与 Apache的连接保持与访问控制(理论加实验)

前言

虚拟机的发展历程
IDC数据中心托管–》 半虚架构 opem vz 资源共享–》带宽容易被侵占 --》linux XEN 半虚 QOS 限制带宽 --》 linux 6.0 KVM 全虚架构—》 openstack
虚拟web主机概述
在同一台服务器中运行多个web站点,其中每一个站点并不独立占用一台真正的计算机
通过虚拟web主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本
使用httpd可以非常方便的构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点

一:httpd支持的虚拟主机类型

1.1 基于域名

为每个虚拟主机使用不同的域名,但是其对应的IP地址使相同的
域名不同–IP相同,端口相同
基于域名是最为普遍的虚拟web主机类型

1.2 基于IP地址

为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同
这种方式需要为服务器配备多个网络接口,因此应用不是很广泛
IP不同,端口相同

1.3 基于端口

这种方式并不使用域名,IP地址来区分不同的站点内容,而是使用不同的TCP端口号
因此用户在浏览不同的虚拟站点时需要同时制定端口号才能访问
IP相同,端口不同

1.4 :添加虚拟主机配置格式

[root@localhost ~]# vim /etc/http/conf/xxx/vhost.conf
 1 <VirtualHost *:80>	'//针对本服务器所有IP地址'
  2   DocumentRoot "/var/www/html/xxx"	'//指定站点目录'
  3   ServerName www.xxx.com	'//指定域名'
  4   Errorlog "logs/www.xxx.com.error_log"	'//指定错误日志路径'
  5   Customlog "logs/www.xxx.com.custom_log" common	'//指定访问日志路径'
  6   <Directory> "/var/www/html">
  7         Require all granted		'//设置网页允许所有主机访问,也可以通过denied设置拒绝访问'
  8   </Directory>
  9 </VirtualHost>

二.通过实例配置体验三种虚拟主机方式

实验环境:一台centos7 设置双网卡 ,一台win10 ,两者绑定同一网卡
在这里插入图片描述

[root@localhost network-scripts]# cat ifcfg-ens3
ifcfg-ens33  ifcfg-ens37
[root@localhost network-scripts]# cat ifcfg-ens33
# Generated by parse-kickstart
DEVICE="ens33"
IPV6INIT="yes"
BOOTPROTO="static"
UUID="d595a57e-4d0d-43f4-a289-1f9dd2233f31"
ONBOOT="yes"
IPADDR=192.168.100.80
NETMSK=255.255.255.0
GATEWAY=192.168.100.2
DNS1=192.168.100.80
[root@localhost network-scripts]#
[root@localhost network-scripts]# cat ifcfg-ens37
# Generated by parse-kickstart
DEVICE="ens37"
IPV6INIT="yes"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.100.110
NETMASK=255.255.255.0
GATEWAY=192.168.100.2
DNS1=192.168.100.110
[root@localhost network-scripts]#

在这里插入图片描述

2.1 基于域名的虚拟主机

虚拟主机基于域名

2.1.1 安装相关软件 DNS 与 apache

Yum install -y httpd   bind  
 [root@localhost ~]# vi /etc/named.conf

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

2.1.2创建区域数据文件

[root@localhost named]# cp -p named.localhost  one.com.zone
[root@localhost named]# vi one.com.zone
[root@localhost named]# cp  -p one.com.zone  two.com.zone

在这里插入图片描述

2.1.3自己创造httpd 配置子文件

[root@localhost conf]# pwd
/etc/httpd/conf
[root@localhost conf]# mkdir extra
[root@localhost conf]# vim vhost.conf
<VirtualHost *:80>       '//针对本服务器所有IP地址 80端口'
    DocumentRoot "/var/www/html/one"  //站点目录
    serverName www.one.com    //服务网页域名
    ErrorLog "logs/www.one.com.error_log"   //错误日志
    CustomLog "logs/www.one.com.access_log" common   //访问日志
    <Directory "/var/www/html">
      require all granted      // 设置网站的访问权限, 允许访问
    <Directory "/var/www/html">
      require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/html/two"
    serverName www.two.com
    ErrorLog "logs/www.two.com.error_log"
    CustomLog "logs/www.two.com.access_log" common
    <Directory "/var/www/html">
      require all granted
    </Directory>
</VirtualHost>

2.1.4 分别创建httpd 首页配置文件

[root@localhost named]# cd /var/www/html/
[root@localhost html]# ls
one  two
[root@localhost one]# cp -p /var/named/named.localhost  index.html
[root@localhost two]# cp -p /var/named/named.localhost  index.html

2.1.5 将之前自己创造的配置文件让HTTPD程序引用

vi /etc/httpd/conf/httpd.conf

在这里插入图片描述

2.1.6 用win10 虚拟机 访问测试,测试成功

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

2.2 基于端口的虚拟主机创建

2.2.1 修改配置子文件

------新增two02 配置,端口8080

vi /etc/httpd/conf/extra/vhost.conf
<VirtualHost *:80>
    DocumentRoot "/var/www/html/one"
    serverName www.one.com
    ErrorLog "logs/www.one.com.error_log"
    CustomLog "logs/www.one.com.access_log" common
    <Directory "/var/www/html">
      require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/html/two"
    serverName www.two.com
    ErrorLog "logs/www.two.com.error_log"
    CustomLog "logs/www.two.com.access_log" common
    <Directory "/var/www/html">
      require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/two"
    serverName www.two.com
    ErrorLog "logs/www.two02.com.error_log"
    CustomLog "logs/www.two02.com.access_log" common
    <Directory "/var/www/html">
      require all granted
    </Directory>
</VirtualHost>

2.2.2 创建two02 的 http 首页配置文件

[root@localhost one]# cd /var/www
[root@localhost www]# cd html/
[root@localhost html]# mkdir two02
[root@localhost html]# cp -p /var/www/html/one/index.html  two02/
[root@localhost html]# cd two02/
[root@localhost two02]# ls
index.html
[root@localhost two02]# vi index.htm

在这里插入图片描述

[root@localhost two02]# vi /etc/httpd/conf/httpd.conf

在这里插入图片描述

2.2.3 查看监听端口

[root@localhost two02]# netstat -ntap | grep httpd
tcp        0      0 192.168.100.80:8080     0.0.0.0:*               LISTEN      80800/httpd
tcp        0      0 192.168.100.80:80       0.0.0.0:*               LISTEN      80800/httpd

2.2.4 使用win10 虚拟机测试

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

2.3 基于IP 地址构建虚拟主机

2.3.1首先修改httpd 配置子文件:

新增一台网卡对应one02

[root@localhost one02]# vi /etc/httpd/conf/extra/vhost.conf
<VirtualHost 192.168.100.80:80>
    DocumentRoot "/var/www/html/one"
    ErrorLog "logs/www.one.com.error_log"
    CustomLog "logs/www.one.com.access_log" common
    <Directory "/var/www/html">
      require all granted
    </Directory>
</VirtualHost>

<VirtualHost 192.168.100.110:80>
    DocumentRoot "/var/www/html/one02"
    ErrorLog "logs/www.one02.com.error_log"
    CustomLog "logs/www.one02.com.access_log" common
    <Directory "/var/www/html">
      require all granted
    </Directory>
</VirtualHost>

2.3.2 创建one02 的httpd 首页配置文件

 [root@localhost html]# mkdir one02
[root@localhost html]# cp -p /var/www/html/one/index.html one02/
[root@localhost html]# cd one02/
[root@localhost one02]# ls
index.html
[root@localhost one02]# vi index.html

在这里插入图片描述

2.3.3 修改http 主配置文件,添加监听端口

vi httpd.conf
 

在这里插入图片描述
测试端口

[root@localhost one02]# netstat -natp | grep httpd
tcp        0      0 192.168.100.110:80      0.0.0.0:*               LISTEN      81323/httpd
tcp        0      0 192.168.100.80:80       0.0.0.0:*               LISTEN      81323/httpd

2.3.4 使用win10访问测试 ,测试成功

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

三 .Apache的连接保持与访问控制

Apache HTTP Server 之所以受到众多企业的青睐,得益于其代码开源,跨平台,功能模块化,可灵活定制等诸多优点,其不仅性能稳定,在安全性方面的表现也十分出色
一:Apache配置详解

3.1:Apache连接保持

3.1.1:为什么要保持连接

HTTP协议是基于TCP协议之上的,在进行HTTP连接之前,要先进行TCP连接,每个TCP连接都要进行三次握手与四次挥手。建立与关闭连接对于HTTP协议而言会消耗很多的内存与CPU资源。
解决办法是HTTP连接保持。就是尽量地保持客户端的连接,通过一个TCP连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低建立与关闭连接时的资源消耗。

3.1.2:保持连接的方式

Apache连接保持相关参数
KeepAlive
是否打开连接保持,OFF关闭,ON打开
KeepAliveTimeout
一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
MaxKeepAliveRequests
一次连接能够传输的最大请求数量

3.2:Apache访问控制

3.2.1:Apache访问控制概述

作用
控制对网站资源的访问
为特定的网站目录添加访问授权
常用访问控制方式
客户机地址限制
用户授权限制

3.2.2:基于客户端地址的访问控制

使用Require配置项实现访问控制,按先后顺序限制

可用,,,配置段中

Require配置项的常见语法

Require all granted
Require all denied
Require local
Require [not] host <主机名或域名列表>
Require [not] ip <IP地址或网段列表>
'//使用not禁止访问时要将其置于<RequireAll></RequireAll>容器中,并在容器中指定相对应的限制策略'

3.3 限制主机 192.168.100.60 访问网站192.168.100.80 实验

3.3.1 修改子配置

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

3.3.2 已经访问不到页面了

另一个地址页面还是可以访问的,因为它没有被限制
在这里插入图片描述

3.4 设置登录用户名访问HTTP页面

创建用户认证数据库

命令基本格式
'//htpasswd命令是httpd自带的'
htpasswd -c /etc/httpd/conf/abc webadmin '//为用户webadmin创建密码文件'
New password:'//输入密码'
Re-type new password:'//重复输入密码'
cat  /etc/httpd/conf/abc
webadmin:加密密码

用户授权限制–添加用户授权配置
'//配置基本格式'

  <Directory "/var/www/html">
  AuthName "DocumentRoot"  '//受保护的领域名称'
  AuthType Basic		'//认证类型'
  AuthUserFile /etc/httpd/conf/qwe  '//用户认证账号文件'
  Require valid-user  '//要求通过认证才能访问'
  </Directory>

3.4.1 创建访问用户,及用户文件夹,设置用户密码

[root@localhost one02]# htpasswd  -c /etc/httpd/conf/pwd lisi
New password:
Re-type new password:
Adding password for user lisi

3.4.2 修改子配置文件

在这里插入图片描述

3.4.3 用lisi 登录测试

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

### 3.4.4 创建用户wangwu 并测试登录
[root@localhost ~]# htpasswd  /etc/httpd/conf/pwd  wangwu
New password:
Re-type new password:
Adding password for user wangwu
[root@localhost ~]#

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

3.5 设置会话保持时间600秒

vi httpd 

在这里插入图片描述

也可以放在HTTP子配置文件中

在这里插入图片描述
[root@localhost network-scripts]# systemctl restart httpd

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Tomcat是一个开源的Web服务器,它支持Java Servlet和JavaServer Pages技术。Java Web开发技术是一种基于Java语言的Web应用程序开发技术,它包括Java Servlet、JavaServer Pages、JavaServer Faces、Java Persistence API等技术。在Java Web开发中,Tomcat作为Web服务器,可以提供对Java Web应用程序的支持和管理。Java Web开发技术可以帮助开发者快速构建高效、可靠、安全的Web应用程序,具有广泛的应用和发展前景。 ### 回答2: Tomcat是一款开源的、基于JavaEE规范的Servlet容器,是Java Web应用服务器中最受欢迎的一个,能够处理Java Servlet、JavaServer Pages等Web语言的开发和运行。Java Web开发技术是利用Java语言进行Web应用程序的开发,具有跨平台、高效、稳定、安全等优点,是Web应用开发的热门技术之一。 Java Web应用的开发与部署过程中,Tomcat作为Servlet容器和Web服务器,与Java Web开发技术密不可分。 一、Tomcat Tomcat是运行Java Web应用的服务器,它是一个Web容器,可以处理HTTP请求,将请求传送给相应的Servlet进行处理,并将处理结果返回给客户端。Tomcat的主要功能是实现Servlet和JSP(JavaServer Pages)规范,同时提供了对JNDI、JDBC等JavaEE组件进行支持,可与其他JavaEE服务器(如WebLogic、WebSphere)配合使用。Tomcat支持多个虚拟主机,可为每个虚拟主机指定不同的Web应用程序。 Tomcat的主要功能: 1. Web容器:用于运行Java Web应用程序。 2. Servlet容器:用于处理Servlet请求。 3. JSP容器:用于编译和运行JSP页面。 4. 静态资源服务器:处理HTML、CSS、JS等文件请求。 5. SSL:支持SSL安全协议。 6. 虚拟主机:为每个虚拟主机指定不同的Web应用程序。 7. CGI支持:为CGI脚本提供支持。 二、Java Web开发技术 Java Web应用程序的开发需要使用Java语言及相关的技术框架,如Java Servlet、JSP、Struts、Spring、Hibernate等,具有跨平台、高效、稳定、安全等优点。Java Web应用程序通常需要与数据库、缓存、消息队列等其他系统进行交互,因此需要使用相关的技术和组件。 Java Web应用程序的主要技术: 1. Servlet:Java Servlet是服务器端的Java程序,用于处理Web应用程序的请求和响应。 2. JSP:JavaServer Pages是一种用于动态生成Web页面的服务器端脚本语言,提供了与HTML混合的标记语言,使得开发带有动态内容的页面更容易。 3. Struts:是一个开源的Web应用框架,使用MVC(Model-View-Controller)设计模式,用于简化Java Web应用程序的开发。 4. Spring:是一个轻量级的、可扩展的Java开发框架,用于构建企业级Java Web应用程序,提供了IoC(Inversion of Control)容器、AOP(Aspect Oriented Programming)框架等功能。 5. ORM(Object-Relational Mapping):ORM是一种将Java对象映射到关系型数据库的技术,常用的ORM框架有Hibernate、MyBatis等。 6. 数据库:Web应用程序需要与数据库进行交互,常用的关系型数据库有MySQL、Oracle、SQL Server等。 总之,Tomcat和Java Web开发技术是Web应用程序开发的重要组成部分,二者相互依存、相互补充,使得Java Web应用程序实现更高效、灵活、易用。 ### 回答3: Tomcat是一个开源的Web应用服务器,常用于Java Web开发中作为HTTP服务器和Servlet/JSP容器。Java Web开发技术是一套基于Java语言实现的Web应用开发技术,包括Servlet、JSP、Spring MVC、Struts2、Hibernate等。 Tomcat作为一个Web服务器,作用是接收用户请求并返回响应。它通过配置好的Servlet和JSP容器处理并响应用户的请求。Servlet利用Java编写,可以接收来自HTTP请求的数据,进行处理并产生响应。JSP则是一种将Java代码嵌入到HTML中的技术。 Tomcat除了自带Servlet和JSP容器之外,还可以通过插件进行扩展,比如入支持JavaServer Faces (JSF)或Struts2框架。同时,Tomcat也支持Java标准安全的方式,比如SSL(安全套接字层)。 对于Java Web开发,Servlet和JSP是核心技术。Servlet可以接受请求并产生响应,JSP则是通过模板映射技术将HTML输出,同时可以嵌入Java代码。Spring MVC是一个基于Servlet和JSP的MVC框架,它提供了类似于Rails和Grails的功能,同时保持了Java强类型的优势。Hibernate是一个ORM(对象关系映射)框架,可以将数据库表和对象映射,方便开发人员进行数据库操作。 总体来说,Tomcat和Java Web开发技术是相辅相成的。Tomcat为Java Web应用提供了一个成熟的Web服务器环境,开发人员可以通过Java Web开发技术完成Web应用的开发。由于Java语言的特性,Java Web应用在扩展性和可维护性方面表现出色,成为现代Web应用开发中的主流技术。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值