超简单linux上部署Apache

1.Apache是什么?

Apache 是世界上最流行的 ​​开源Web服务器软件​​,由 Apache 软件基金会维护。

  • ​主要功能​​:接收客户端(如浏览器)的HTTP请求,返回网页、图片等静态/动态资源。

  • ​特点​​:

    • 跨平台(Linux、Windows、macOS)

    • 模块化设计(按需加载功能)

    • 支持多语言扩展(PHP、Python等)

    • 高稳定性和安全性

2.核心架构与工作原理​

多进程模型(MPM)​
  • ​Prefork​​:多进程模式,每个请求由一个独立子进程处理(适合稳定性要求高的场景)。

  • ​Worker​​:多进程+多线程混合模式(平衡性能与资源消耗)。

  • ​Event​​:基于事件驱动,高效处理高并发连接(现代推荐模式)。

3.Apache 安装

#apache的基本信息
/etc/httpd/conf #apache的配置目录
/etc/http/conf.d #子配置目录
/etc/httpd/conf/httpd.conf #主配置文件
/lib/systemd/system/htpd.service #启动文件
:80 #默认端口
/var/www/html #默认发布目录
index.html #默认发布文件

bash 复制代码
#安装apache
[root@apache ~]# dnf install httpd -y
#在火墙中放行web服务
[root@apache ~]# firewall-cmd --permanent --add-service=http
success
[root@apache ~]# firewall-cmd --permanent --add-service=https
success
#开启服务
[root@apache ~]# systemctl enable --now httpd
#生成默认测试页文件
[root@apache ~]# echo 172.25.254.100 > /var/www/html/index.html  #nginx的发布地为/usr/share/nginx/html/index.html
#测试:
[root@apache ~]# curl 172.25.254.100
172.25.254.100

4.Apache的基本配置信息

4.1.端口修改

bash 复制代码
#修改配置文件
[root@apache ~]# vim /etc/httpd/conf/httpd.conf
47 Listen 8080
#刷新服务
[root@apache ~]# systemctl reload httpd
#设定火墙通过
[root@apache ~]# firewall-cmd --permanent --add-port=8080/tcp
success
[root@apache ~]# firewall-cmd --reload
#检测
[root@apache ~]# netstat -antlupe | grep httpd
tcp6 0 0 :::8080 :::* LISTEN 0
78081 32315/httpd
#访问:
[root@apache ~]# curl 172.25.254.100:8080
172.25.254.100

2.默认发布目录

bash 复制代码
#建立默认发布目录
[root@apache ~]# mkdir /web/html -p
#修改配置文件
[root@apache ~]# vim /etc/httpd/conf/httpd.conf
125 DocumentRoot "/web/html" #指定默认发布目录位置
126 <Directory "/web/html">
127 Require all granted #对于目录访问进行授权
128 </Directory>
[root@apache ~]# systemctl restart httpd
[root@apache ~]# echo "/web/html's page" > /web/html/index.html
[root@apache ~]# curl 172.25.254.100:8080
/web/html's page

3.默认发布文件

bash 复制代码
#建立新的默认发布文件
[root@apache ~]# echo "/web/html/lee's page" > /web/html/lee.html
#当没有对配置进行修改时新默认发布文件不会被默认访问
[root@apache ~]# curl 172.25.254.100:8080
/web/html's page
[root@apache ~]# curl 172.25.254.100:8080/lee.html
/web/html/lee's page
#修改配置文件
[root@apache ~]# vim /etc/httpd/conf/httpd.conf
172 <IfModule dir_module>
173 DirectoryIndex lee.html index.html
174 </IfModule>
#重启服务
[root@apache ~]# systemctl reload httpd
#测试:
[root@apache ~]# curl 172.25.254.100:8080
/web/html/lee's page

4.https

bash 复制代码
#安装mod_ssl
[root@apache ~]# dnf install mod_ssl -y

#建立证书和key文件目录
[root@apache ~]# mkdir /etc/httpd/certs

#制作证书
[root@apache ~]# openssl req \
-newkey rsa:2048 \
-nodes \                          # 这里 \ 表示空格的意思
-sha256 \
-keyout /etc/httpd/certs/timinglee.org.key \
-x509 \
-days 365 \
-out /etc/httpd/certs/timinglee.org.crt

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Shannxi
Locality Name (eg, city) [Default City]:XI'AN
Organization Name (eg, company) [Default Company Ltd]:timinglee
Organizational Unit Name (eg, section) []:webserver
Common Name (eg, your name or your server's hostname) []:www.timinglee.org
Email Address []:timinglee@timinglee.org

#命令执行完成,证书出现
[root@apache ~]# ls /etc/httpd/certs/
timinglee.org.crt timinglee.org.key

#编辑主配置文件
[root@apache ~]# vim /etc/httpd/conf.d/ssl.conf
86 SSLCertificateFile /etc/httpd/certs/timinglee.org.crt
95 SSLCertificateKeyFile /etc/httpd/certs/timinglee.org.key

#重启服务
root@apache ~]# systemctl reload httpd
[root@apache ~]# netstat -antlupe | grep httpd
tcp6 0 0 :::443 :::* LISTEN 0
85111 33518/httpd
tcp6 0 0 :::80 :::* LISTEN 0
80172 33518/httpd

#在浏览器中访问
https://服务器ip

6.apache的虚拟主机

bash 复制代码
#为每个发布站点建立默认发布目录
[root@apache ~]# mkdir -p /var/www/virtual/timiniglee.org/news
[root@apache ~]# mkdir -p /var/www/virtual/timiniglee.org/bbs

#为每个站点建立默认发布文件
[root@apache ~]# echo new.timinglee.org >
/var/www/virtual/timiniglee.org/news/index.html
[root@apache ~]# echo bbs.timinglee.org >
/var/www/virtual/timiniglee.org/bbs/index.html

#修改配置文件
[root@apache ~]# vim /etc/httpd/conf.d/vhosts.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName bbs.timinglee.org
DocumentRoot /var/www/virtual/timiniglee.org/bbs/
</VirtualHost>
<VirtualHost *:80>
ServerName news.timinglee.org
DocumentRoot /var/www/virtual/timiniglee.org/news/
</VirtualHost>

#刷新服务
[root@apache ~]# systemctl reload httpd
bash 复制代码
#测试:
1.在浏览器所在主机中手动编写本地解析文件
[root@apache ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

#加入虚拟主机解析域名
172.25.254.100 mariadb.timinglee.org www.timinglee.org news.timinglee.org
bbs.timinglee.org

2.测试效果
[root@apache ~]# curl www.timinglee.org
172.25.254.100
[root@apache ~]# curl bbs.timinglee.org
bbs.timinglee.org
[root@apache ~]# curl news.timinglee.org
new.timinglee.org
相关推荐
码云数智-大飞7 小时前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
Strugglingler7 小时前
【systemctl 学习总结】
linux·systemd·systemctl·journalctl·unit file
jinanwuhuaguo7 小时前
(第二十九篇)OpenClaw 实时与具身的跃迁——从异步孤岛到数字世界的“原住民”
前端·网络·人工智能·重构·openclaw
等风来不如迎风去8 小时前
【win11】最佳性能:fix 没有壁纸,一直黑屏
网络·人工智能
Harvy_没救了8 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信8 小时前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
嵌入式×边缘AI:打怪升级日志8 小时前
100ASK-T113 Pro 开发板 Bootloader 完全开发指南
linux·ubuntu·bootloader
汤愈韬8 小时前
NAT Server 与目的Nat
网络·网络协议·网络安全·security
2401_873479409 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩9 小时前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发