搭建apache服务器

本文是一篇对apache服务器搭建以及http.conf配置文件的详解。(作者是个小白如果有错误欢迎指出)

一.apache网站服务

1.apache简介和使用

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。(说白了就是一个web服务器,作用是做一个通过服务器制作一个网页并控制网页的域名,访问权限等,注意这个东西不是前端!)

2.优点

  • 支持最新的HTTP/1.1通信协议
  • 搭建极为简单并且基本可以在所有计算机平台上运行
  • 支持实时监控日志状态
  • 支持动态网址和控制访问
  • 模块化实现功能

二.搭建前的准备工作

1.配置yum源

由于httpd内置在大部分centos镜像中,我这里就直接通过光盘进行安装apache服务器

[root@localhost ~]# mkdir /etc/yum.repos.d/
[root@localhost ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/old/ 
#保存原来的yum源

[centos]
name=redhat7
baseurl=file:///opt
enabled=1
gpgcheck=0

[root@localhost ~] vim /etc/yum.repos.d/centos.repo
#按i进入编辑模式
[centos] #yum仓库标识
name=redhat7 #仓库名字
baseurl=file:///opt #仓库的路径这里是/opt下 
enabled=1 #仓库是否启动
gpgcheck=0 #是否需要安全检查
:wq#保存退出
#创建新的yum源
[root@localhost ~]mount /dev/cdrom /opt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~] yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识                                                                      源名称                                                                       状态
centos                                                                      redhat7                                                                      3,894
repolist: 3,894
#挂载镜像并且刷新yum仓库

2.安装httpd

[root@localhost ~] yum -y install httpd
已加载插件:fastestmirror
centos                                                                                                                                 | 3.6 kB  00:00:00
Loading mirror speeds from cached hostfile
软件包 httpd-2.4.6-67.el7.centos.x86_64 已安装并且是最新版本
无须任何处理
#我已经安装过了所以这里无需处理

三.httpd讲解

1.httpd启动

[root@localhost ~]# systemctl start httpd #启动httpd服务

现在直接在浏览器中通过就可以访问httpd服务了
如图
在这里插入图片描述

如果无法打开请先关闭防火墙


[root@localhost ~] systemctl stop firewalld #关闭防火墙
[root@localhost ~] systemctl status firewalld #查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 五 2024-10-04 10:33:40 CST; 1min 7s ago
     Docs: man:firewalld(1)
 Main PID: 723 (code=exited, status=0/SUCCESS)
# 显示dead表示已经成功关闭了防火墙(防火墙默认只允许ssh dhcp 协议通过)
[root@localhost ~] firewall-cmd --list-all  #查看防火墙
   public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens34
  sources:
  services: ssh dhcpv6-client #允许的协议
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

2.httpd简单使用

[root@localhost ~]# echo hello word > /var/www/html/index.html	

刷新页面就可以看到效果
如图
在这里插入图片描述

四.http.conf配置文件

1.基于域名的虚拟主机

[root@localhost ~]# vim /etc/httpd/conf.d/test.conf #创建一个httpd的配置文件
#按i编辑
<VirtualHost *:80>  #*.80 *代表所有主机可以访问,80是端口
    ServerName example.com  #ServerName 指定了虚拟主机的域名为example.com
    DocumentRoot /var/www/example #DocumentRoot 指定了虚拟主机的主目录(也是就访问域名默认取文件的路径)
</VirtualHost> #《/VirtualHost》代表这是一个虚拟主机

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test
</VirtualHost>
:wq保存并且退出
systectl restart httpd #重启httpd服务
[root@localhost ~] vim /etc/hosts #添加主机映射
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.14.1 example.com
192.168.14.1 test.com

[root@localhost ~] curl test.com
test
[root@localhost ~] curl example.com
exapmle
#测试

2.访问控制权限修改

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test
</VirtualHost>
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
    <Directory "/var/www/example">
       Require all denied #拒绝所有主机访问
    </Directory>
</VirtualHost>
systectl restart httpd #重启httpd服务
curl example.com #测试发现无法访问了

本人第一次写博客的代码,中间可能很多地方有问题欢迎指出!

03-19
### IEEE 802.1Q VLAN Tagging Protocol Standard IEEE 802.1Q 是支持虚拟局域网(VLAN)的标准协议之一,通常被称为 Dot1q。该标准定义了一种用于以太网帧的 VLAN 标记系统以及交换机和桥接器处理这些标记帧的操作流程[^2]。 #### 协议结构概述 IEEE 802.1Q 的核心功能在于通过在以太网数据帧中插入特定字段来实现 VLAN 标签的功能。这种标签使得网络设备能够识别哪些流量属于哪个 VLAN,并据此执行转发决策。具体来说: - **Tag Header**: 在原始以太网帧头部增加了一个额外的 4 字节字段作为 VLAN 标签头。这四个字节包含了以下部分: - **Priority Code Point (PCP)**: 使用 3 比特表示优先级级别,范围从 0 到 7,主要用于 QoS 控制。 - **Canonical Format Indicator (CFI)**: 这是一个单比特位,在传统以太网环境中设置为零。 - **VLAN Identifier (VID)**: 使用 12 比特标识具体的 VLAN ID,理论上可以支持多达 4096 个不同的 VLAN(编号从 0 至 4095),其中某些特殊值保留给内部用途或管理目的。 #### 数据包处理机制 当一个带有 VLAN tag 的数据包进入支持 IEEE 802.1Q 的交换机时,它会依据此标签决定如何路由或者过滤该数据流。如果目标端口不属于同一 VLAN,则不会传输至其他无关联的物理接口上;反之亦然——只有相同 VLAN 成员之间才允许互相通信除非经过路由器跨网段访问[^1]。 此外,为了简化管理和配置过程并增强互操作性,还引入了一些辅助性的子协议和服务组件比如 GARP(通用属性注册协议)。GARP 可帮助分发有关 VLAN 成员资格的信息到各个连接节点以便动态调整其行为模式而无需频繁手动干预[^3]。 以下是创建带 VLAN TAG 的 Python 示例代码片段展示如何模拟构建这样的 Ethernet Frame: ```python from scapy.all import Ether, Dot1Q, IP, sendp def create_vlan_packet(src_mac="00:aa:bb:cc:dd:ee", dst_mac="ff:ff:ff:ff:ff:ff", vlan_id=100, src_ip="192.168.1.1", dst_ip="192.168.1.2"): ether = Ether(src=src_mac, dst=dst_mac) dot1q = Dot1Q(vlan=vlan_id) ip_layer = IP(src=src_ip, dst=dst_ip) packet = ether / dot1q / ip_layer return packet packet = create_vlan_packet() sendp(packet, iface="eth0") # Replace 'eth0' with your network interface name. ``` 上述脚本利用 Scapy 库生成包含指定源地址、目的地址及所属 VLAN 编号的数据报文并通过选定的网卡发送出去测试实际效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值