构建Apache WEB服务器三部曲之三 虚拟主机

简介:

一、 Apache基于端口、IP、域名访问的三种虚拟主机配置方法
注释:
基于端口的时候,IP和域名相同
基于IP的时候,端口和域名相同
基于域名的时候,IP和端口相同
1、 基于端口
[root@jacken ~]# vim /usr/local/apache2/conf/httpd.conf
添加监听8080端口

wKiom1UYK47h-9GgAAA6YzAF_Yw680.jpg

开启子配置文件(辅助虚拟主机文件)

wKiom1UYK8-y6huGAABcPP9_T34382.jpg

建立相应目录和网页内容

wKioL1UYLQqwqbB8AAHyRSnuRwA610.jpg

添加虚拟主机
Vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
注释掉NameVirtualHost *:80

wKiom1UYK9DSYa6JAAAiSl55lvU640.jpg

如果不注释注释NameVirtualHost * 80,重启服务会报如下错误

wKioL1UYLQqQJYwrAADEaCRHOOc730.jpg

虚拟主机内容如下

wKioL1UYLTWj6xwYAAK5xA6SO4U995.jpg

客户端访问
虚拟主机1

wKiom1UYK_yDJbcAAACFfhC9IDs116.jpg

虚拟主机2

wKioL1UYLTfD38sdAACPz0xgejY826.jpg

2、 基于IP
添加ip地址192.168.1.22

wKiom1UYLADRL640AARP41Pgrwc192.jpg

新建相关目录及文件

wKioL1UYLWaSVK3NAAGiJo0mhV0013.jpg

配置虚拟主机
[root@jacken ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

wKiom1UYLC6xyCRTAAKR0oMrM-s603.jpg

客户端测试
访问192.168.1.2

wKioL1UYLWmwmo3jAAB37pHSoIM228.jpg

访问192.168.1.22

wKiom1UYLC_RY5wjAAB_PkBMxs4219.jpg

3、 基于域名
新建相关目录及文件

wKioL1UYLWqBEGKiAAGsuC92Rqs783.jpg

修改虚拟主机
[root@jacken ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

wKiom1UYLEyC284QAAJ-VHJTVR4778.jpg

这一行要启用NameVirtualHost *:80
否则重启服务会报以下错误

wKioL1UYLYaxFeVaAADp7Wsq44s532.jpg

客户端访问
Win7客户端做hosts解析
C:\Windows\System32\drivers\etc\hosts

wKiom1UYLE-TVvsMAAM5Z15Db1M550.jpg


访问www.a.com

wKioL1UYLYrCAx80AAB46v0gbC8881.jpg

访问www.b.com

wKiom1UYLFGCxaPNAAB6HgNYyAI568.jpg

总结:
当测试基于某一种的(端口、IP、域名)时候,尽量把其他的两种虚拟主机配置文件注释掉,避免出现冲突。
使用虚拟主机,务必要开启
/usr/local/apache2/conf/httpd.conf中的Include conf/extra/httpd-vhosts.conf

对于/usr/local/apache2/conf/extra/httpd-vhosts.conf 中的NameVirtualHost *:80
当基于端口的时候
注释掉 #NameVirtualHost *:80
当基于IP的时候
注释掉 #NameVirtualHost *:80
当基于域名的时候
要启用NameVirtualHost *:80
更改apache配置文件后,要重启下服务。

二、 网站加密验证

首先作下链接,方便打开相应文件

wKioL1UYLb6BI9ESAAJ8uA-9VtA646.jpg

需求:
只允许IP为192.168.1.253的客户端访问网站,并且只能是定义的用户(账号密码验证)

1、 创建用户及密码(htpasswd –c是创建 一个文件 –m的密码MD5加密,当创建第二个用户的时候应去掉-c,否则会覆盖第一个用户。对于已存在的用户,再次创建,相当于更新密码。)如果没有htpasswd命令,可以安装httpd-tools工具或直接调用
/usr/local/apache2/bin/htpasswd

wKioL1UYLb-RhWPvAAHVV1BVhZY272.jpg

2、修改虚拟主机配置文件
[root@jacken extra]# vim httpd-vhosts.conf

wKiom1UYLIWgPApzAAHJB2NIN-g527.jpg

        AuthName jiami   提示用户的信息为”jiami”
        AuthType basic    鉴别方法是basic
        AuthUserFile /usr/local/apache2/conf/users 指定验证用户名密码的路径和文件名
        require valid-user 合法用户才能访问(在上边users文件中的用户)
        Order allow,deny 先允许再拒绝
        Allow from 192.168.1.253 只允许IP为192.168.1.253的客户端访问
注:如果想让users中的部分用户可以访问,则 require user user1 user2 
用户名之间用空格隔开,只有列出的用户可以访问。

常见代码
Require all granted #允许所有
Require all denied #拒绝所有
Require env env-var [env-var] ... #允许,匹配环境变量中任意一个
Require method http-method [http-method] ... #允许,特定的HTTP方法
Require expr expression #允许,表达式为true
Require user userid [ userid ] ... #允许,特定用户
Require group group-name [group-name] ... #允许,特定用户组
Require valid-user # #允许,有效用户
Require ip 10 172.20 192.168.2 #允许 特定IP

3、客户端访问
Win7客户端访问(win7客户端IP为192.168.1.253),输入账号密码后可以访问。

wKioL1UYLcHB4WYMAAEiAHOlRQs500.jpg

wKiom1UYLImxO6ZSAAD8X8wwyZs270.jpg

Linux无权限访问(linux客户端IP为192.168.1.3)

wKioL1UYLcaRytjeAAJ_NbGnXzg888.jpg


本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1626284,如需转载请自行联系原作者

相关文章
|
9月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1585 1
|
9月前
|
人工智能 JavaScript 前端开发
用 Go 语言轻松构建 MCP 服务器
本文介绍了使用 Go 语言构建 MCP 服务器的完整过程,涵盖创建服务器实例、注册工具、资源和提示词,以及通过 stdio 和 sse 模式启动服务的方法,帮助开发者快速集成 LLM 应用与外部系统。
|
10月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
2373 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
11月前
|
监控 Ubuntu 安全
Ubuntu系统下构建FTP服务器的步骤
记住,时不时的巡视(监控)农场,更新工具(软件和安全性更新),以及恰当的维护同样重要,这样你的FTP农场才能长久繁荣。
201 4
|
人工智能 搜索推荐 程序员
用 Go 语言轻松构建 MCP 客户端与服务器
本文介绍了如何使用 mcp-go 构建一个完整的 MCP 应用,包括服务端和客户端两部分。 - 服务端支持注册工具(Tool)、资源(Resource)和提示词(Prompt),并可通过 stdio 或 sse 模式对外提供服务; - 客户端通过 stdio 连接服务器,支持初始化、列出服务内容、调用远程工具等操作。
2880 5
|
存储 人工智能 数据处理
Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座
秉承“以场景驱动创新” 的核心理念,持续深耕三大核心场景的关键能力,并对大模型 GenAI 场景的融合应用进行重点投入,为智能时代构建实时、高效、统一的数据底座。
665 10
Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
935 29
|
7月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
1331 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
8月前
|
人工智能 运维 Java
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
本文基于Apache Flink PMC成员宋辛童在Community Over Code Asia 2025的演讲,深入解析Flink Agents项目的技术背景、架构设计与应用场景。该项目聚焦事件驱动型AI智能体,结合Flink的实时处理能力,推动AI在工业场景中的工程化落地,涵盖智能运维、直播分析等典型应用,展现其在AI发展第四层次——智能体AI中的重要意义。
2921 27
Flink Agents:基于Apache Flink的事件驱动AI智能体框架

推荐镜像

更多