当前位置: 首页 > news >正文

linux:http服务器搭建及实验案例

目录

  • 准备工作
  • http服务器各个配置文件大概说明
  • 实验1:访问不同ip获得不同网页
  • 实验2:同一ip访问不同端口获得不同网页

准备工作

1,安装http服务
2,将 /etc/selinux/config 文件下面的 SELINUX值改为 disabled 或者 permissive
3,关闭防火墙 systemctl stop firewalld
做上面的工作是为了http在提供服务时让其不会阻止读取一些文件。

http服务器各个配置文件大概说明

/etc/httpd/ 里面是http的主要的配置文件
tree /etc/httpd/ 可以看到这个文件的结构一目了然
在这里插入图片描述
/etc/httpd/conf/httpd.conf 文件里面是主要配置文件,conf.d文件里面所有的.conf文件都会被加载。

/etc/httpd/conf/httpd.conf 里面的 DocumentRoot 是用户访问时的主目录
welcome.conf文件是默认的index.html文件的所在

实验1:访问不同ip获得不同网页

要求:
1,该网站ip地址的主机位为100,设置DocumentRoot为/www/ip/100,网页内容为:100。,
2、该网站ip地址主机位为200,设置DocumentRoot为/www/ip/200,网页内容为:200。

开始:
1,根据查看自己本机地址可以创建2个ip地址:

nmcli c modify ens160 +ipv4.addresses 192.168.107.100/24 ipv4.method manual
nmcli c modify ens160 +ipv4.addresses 192.168.107.200/24 ipv4.method 

2, 创建DocumentRoot文件和写入网页内容

mkdir /www/ip/{100,200} -p   递归创建文件
echo 100 > /www/ip/100/index.html    写入对应的内容
echo 200 > /www/ip/200/index.html 

3,写配置文件
自己写的配置文件在 conf.d 里面,必须要为 .conf 结尾才能加载
自己写的配置文件参考示例文档为:/usr/share/doc/httpd/httpd-vhosts.conf

如何知道示例文档在哪里?
一般示例文档是有 doc 标志的,可以通过grep过滤

[root@localhost conf.d]# touch 100.conf   创建名字为 100.conf 的自定义配置文件
[root@localhost conf.d]# touch 200.conf [root@localhost conf.d]# vim 100.conf    参考示例文件编辑这个文件,写入下面内容
<VirtualHost 192.168.107.100:80>#ServerAdmin webmaster@dummy-host.example.com   现在阶段不需要写DocumentRoot "/www/ip/100"     用户访问的主文件ServerName 192.168.107.100  必须写#ServerAlias www.dummy-host.example.com    服务器别名ErrorLog "/var/log/httpd/100.com-error_log"     错误日志文件,也可以不要CustomLog "/var/log/httpd/200.com-access_log" common
</VirtualHost>
<Directory /www/ip/100>    给 /www/ip/100 目录赋予权限,不写服务器就读取不到该文件下的AllowOverride noneRequire all granted
</Directory>
[root@localhost conf.d]# vim 200.conf     与上面 操作相似,将ip100 换成200 即可,如下
<VirtualHost 192.168.107.200:80>#ServerAdmin webmaster@dummy-host.example.comDocumentRoot "/www/ip/200"ServerName 192.168.107.200#ServerAlias www.dummy-host.example.comErrorLog "/var/log/httpd/200.com-error_log"CustomLog "/var/log/httpd/200.com-access_log" common
</VirtualHost><Directory /www/ip/200>AllowOverride noneRequire all granted
</Directory>

4, 最后重新启动一下http服务并且访问

[root@localhost conf.d]# systemctl restart httpd

可以看到访问成功(也可以在浏览器里面访问)
在这里插入图片描述

实验2:同一ip访问不同端口获得不同网页

要求:
1、建立一个使用10000端口的网站,设置DocumentRoot为/www/port/10000,网页内容为:the port is 10000。默认为80端口,网页内容为100

开始:与上面实验基本差不多
1 创建一个 DocumentRoot 文件

[root@localhost conf.d]# mkdir /www/port/10000 -p
[root@localhost port]# echo 10000 > 10000/index.html
[root@localhost conf.d]# vim 100.conf   再次编辑这个文件,输入以下内容
<VirtualHost 192.168.107.100:10000>   #ServerAdmin webmaster@dummy-host.example.comDocumentRoot "/www/port/10000"ServerName 192.168.107.100#ServerAlias www.dummy-host.example.comErrorLog "/var/log/httpd/port10000.com-error_log"CustomLog "/var/log/httpd/port10000.com-access_log" common
</VirtualHost><Directory /www/port>   给这个文件赋予权限AllowOverride noneRequire all granted
</Directory>

2,建立监听端口
因为默认是监听的80端口,所以需要手动添加端口10000
可以在/etc/httpd/conf/httpd.conf 编辑或者在conf.d 文件中编辑,这里在主配置文件中写监听端口

[root@localhost conf.d]# vim /etc/httpd/conf/httpd.conf   进入文件在Listen 80位置写上如下
Listen 10000

2,最后重新启动http服务

[root@localhost httpd]# systemctl restart httpd

再访问不同的端口可以看到请求到了不同的页面
在这里插入图片描述

http://www.lryc.cn/news/18693.html

相关文章:

  • 【无标题】智能工业安全用电监测与智慧能源解决方案
  • 前端白屏的检测方案,让你知道自己的页面白了
  • 编译原理【文法设计】—每个a后面至少一个b、ab个数相等,ab个数不相等的所有串
  • 【死磕数据库专栏启动】在CentOS7中安装 MySQL5.7版本实战
  • 23.2.23 22湖北省赛 B
  • ONLYOFFICE中的chatGPT 是如何编写毕业论文以及翻译多种语言的
  • QT入门Containers之QStackedWidget
  • Java学习-IO流-字节缓冲流
  • C++这么难,为什么我们还要学习C++?
  • C#底层库--业务单据号生成器(定义规则、自动编号、流水号)
  • vue3项目练习大全(附github源码)
  • SWMM从入门到实践教程 01 SWMM软件介绍
  • CSS中的text-overflow属性详解 (控制文字在一行显示,超出部分加省略号)
  • 基于pytorch实现模型剪枝
  • 写出高质量的前端代码之消除代码中的重复
  • 怎么从零开始学黑客,黑客零基础怎么自学
  • 量化择时——资金流择时策略(第1部分—因子测算)
  • Openwrt中动态IPV6 防火墙的正确设置方法
  • JS的基本数据类型和引用数据类型
  • mars3d基础项⽬常⻅报错
  • 【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
  • Python学习-----模块4.0(json字符串与json模块)
  • open3d最大平面检测,平面分割
  • 【C++】4.类和对象(下)
  • 自动驾驶仿真:ECU TEST 、VTD、VERISTAND连接配置
  • postgres数据库连接管理
  • 【华为OD机试模拟题】用 C++ 实现 - 环中最长子串(2023.Q1)
  • Spring:@Async 注解和AsyncResult与CompletableFuture使用
  • tidb ptca,ptcp考证
  • 关于用windows开发遇到的各种乌龙事件之node版本管理---nvm install node之后 npm 找不到的问题