Apache HTTP Server 从安装到配置

一、Apache 是什么?

Apache(全称 Apache HTTP Server )是当前最流行的开源Web服务器软件之一,由Apache软件基金会维护。它以稳定性高、模块化设计 和灵活的配置著称,支持Linux、Windows等多平台,是搭建个人博客、企业官网乃至复杂Web应用的首选工具。

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

二、安装Apache

bash 复制代码
# 1. 安装Apache
sudo dnf install httpd -y

# 2. 放行防火墙(允许HTTP/HTTPS流量)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# 3. 启动并设置开机自启
sudo systemctl enable --now httpd

# 4.生成默认测试页文件
echo 172.25.254.100 > /var/www/html/index.html

# 5.测试:
curl 172.25.254.100
172.25.254.100

三、Apache的基本配置信息

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 复制代码
修改selinux  ------开着的话会有所影响
grubby --update-kernel ALL --args selinux=0

reboot ------重启

getenforce
Disabled



#建立默认发布目录
[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

5.apache的虚拟主机

bash 复制代码
修改selinux  ------有所影响
grubby --update-kernel ALL --args selinux=1

reboot ------重启

getenforce
Enforcing

#为每个发布站点建立默认发布目录
[root@apache ~]# mkdir -p /var/www/virtual/timinglee.org/news
[root@apache ~]# mkdir -p /var/www/virtual/timinglee.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

#测试:
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
相关推荐
XUEYUAN52123 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
CHENKONG_CK3 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
z落落3 天前
C#UDP+串口服务端+UDP 客户端(含 CRC16 校验)
网络·网络协议·udp
曼巴UE53 天前
UE5 客户端 需要的网络同步概念总结(3 )-事件同步 RPC 以及三种调用方式
网络·c++·网络协议·学习·rpc·ue5
captain3763 天前
HTTP(2)
java·网络·http·java-ee
开开心心就好3 天前
安卓手写文字生成工具,多种纸张一直免费
网络·网络协议·tcp/ip·leetcode·智能手机·电脑·模拟退火算法
比兔代理4 天前
正向代理与反向代理技术辨析,为什么代理 IP 属于正向代理
服务器·网络·http·ip
K成长日志4 天前
DALI协议-Part209-颜色控制
物联网·网络协议·iot·智能照明·智能建筑·dali
IPdodo_5 天前
跨境 API 调用不稳定怎么办:出口、超时重试与链路监控的实践
网络·python·网络协议
碳基修炼5 天前
排查记:本地 devServer 是 http,浏览器却把 302 重定向升级成了 https
前端·http