news 2026/7/19 3:05:32

Apache服务及相关配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apache服务及相关配置

一、Apache安装

[root@nfs-server ~]# dnf install httpd -y
[root@nfs-server ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

二、Apache服务基本信息

软件:httpd

端口:httpd:80 https:443

主配置文件:/etc/httpd/conf/httpd.conf

子配置文件:/etc/httpd/conf.d/

服务启动脚本:httpd.service

默认发布目录:/var/www/html

默认发布文件:index.html

三、Apache的基本配置

1.发布文件

默认发布文件的生成

[root@nfs-server ~]# echo 172.25.254.100 > /var/www/html/index.html #写入文件内容
[root@nfs-server ~]# cat /var/www/html/index.html
172.25.254.100
测试

[root@nfs-server ~]# curl 172.25.254.100
172.25.254.100

默认发布文件的修改

[root@nfs-server ~]# vim /etc/httpd/conf/httpd.conf #修改主配置文件
168 <IfModule dir_module>
169 DirectoryIndex lee.html index.html #在默认发布文件前加入需要访问的文件
170 </IfModule>

[root@nfs-server ~]# systemctl reload httpd #重启服务(reload可以实现服务不停止的情况下更新配置文件)
[root@nfs-server ~]# echo lee > /var/www/html/lee.html #写入文件内容

测试

[root@nfs-server ~]# curl 172.25.254.100
lee
[root@nfs-server ~]# cat /var/www/html/lee.html
lee
[root@nfs-server ~]# rm -fr /var/www/html/lee.html
[root@nfs-server ~]# curl 172.25.254.100
172.25.254.100

2.修改默认发布目录

生成新的默认发布目录和默认发布文件

[root@nfs-server ~]# mkdir /var/web/html
[root@nfs-server ~]# echo /var/web/html > /var/web/html/index.html

配置使用新的默认发布目录和默认发布文件

[root@nfs-server ~]# vim /etc/httpd/conf/httpd.conf
#DocumentRoot "/var/www/html"
DocumentRoot "/var/web/html"
<Directory "/var/web"> #对/var/web目录授权,否则服务拒绝访问
AllowOverride None
# Allow open access:
Require all granted
</Directory>

[root@nfs-server ~]# systemctl restart httpd

测试

[root@nfs-server ~]# curl 172.25.254.100
/var/web/html

四、修改服务端口

[root@nfs-server ~]# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html" #恢复默认发布目录
#DocumentRoot "/var/web/html"
47 Listen 8080 #修改端口

[root@nfs-server ~]# systemctl restart httpd

测试

[root@nfs-server ~]# netstat -antlupe | grep httpd
tcp6 0 0 :::8080 :::* LISTEN 0 79486 30895/httpd
[root@nfs-server ~]# curl 172.25.254.100:8080
172.25.254.100

五、目录的访问控制

1.基于IP的访问控制

要求:在访问http://172.25.254.100/lee时只能让172.25.254.1主机访问,其他人不能访问

[root@nfs-server ~]# mkdir /var/www/html/lee
[root@nfs-server ~]# echo /var/www/html/lee > /var/www/html/lee/index.html

[root@nfs-server ~]# vim /etc/httpd/conf/httpd.conf
Listen 80 #更改端口
<Directory "/var/www/html/lee"> #给目录授权
Order deny,allow #order-顺序,deny-拒绝,allow-允许
Deny from ALL #拒绝所有访问
Allow from 172.25.254.1 #允许172.25.254.1访问
</Directory>

注意:此处有个逻辑关系,后面的命令会覆盖前面的命令,例如上述代码,deny拒绝所有访问,但是allow允许172.25.254.1访问,由于allow在deny之后,所以allow覆盖前面的deny,所以172.25.254.1可以访问
[root@nfs-server ~]# systemctl restart http

测试

[root@nfs-server ~]# curl 172.25.254.100/lee
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.</p>
</body></html>

#在windows中的浏览器中访问http://172.25.254.100/lee 是可以的

2.基于用户认证的访问控制

当访问http://172.25.254.100/timinglee目录时,需要通过用户认证否则拒绝访问

[root@nfs-server ~]# mkdir -p /var/www/html/timinglee
[root@nfs-server ~]# echo /var/www/html/timinglee > /var/www/html/timinglee/index.html

#建立认证文件
[root@nfs-server ~]# htpasswd -cm /etc/httpd/.htpasswd lee
New password:
Re-type new password:
Adding password for user lee

#配置apache目录访问认证
[root@nfs-server ~]# vim /etc/httpd/conf/httpd.conf

<Directory "/var/www/html/timinglee">
AuthUserFile /etc/httpd/.htpasswd #用户认证文件
AuthName "Please input username and password"
AuthType basic
Require valid-user
</Directory>

[root@nfs-server ~]# systemctl restart httpd

测试

[root@nfs-server ~]# curl 172.25.254.100/timinglee/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested. Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>

[root@nfs-server ~]# curl 172.25.254.100/timinglee/ -ulee:lee
/var/www/html/timinglee

六、Apache服务器的虚拟主机

服务IP是非常有限的资源,Apache默认只能发布一个站点,但是企业可能又多个站点要发布,那么就需要Apache的虚拟机技术

1.建立各个站点的默认发布目录和发布文件

www.timinglee.org 访问默认

bbs.timinglee.org /var/www/virtual/timinglee.org/bbs

news.timinglee.org /var/www/virtual/timinglee.org/news

[root@nfs-server ~]# mkdir /var/www/virtual/timinglee.org/news -p
[root@nfs-server ~]# mkdir /var/www/virtual/timinglee.org/bbs -p
[root@nfs-server ~]# echo news.timinglee.org > /var/www/virtual/timinglee.org/news/index.html
[root@nfs-server ~]# echo bbs.timinglee.org /var/www/virtual/timinglee.org/bbs/index.html
bbs.timinglee.org /var/www/virtual/timinglee.org/bbs/index.html
[root@nfs-server ~]# echo bbs.timinglee.org > /var/www/virtual/timinglee.org/bbs/index.html

2.配置虚拟主机

[root@nfs-server ~]# vim /etc/httpd/conf.d/vhosts.conf #子配置文件
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog /etc/httpd/logs/default.log combined
</VirtualHost>

<VirtualHost *:80>
ServerName news.timinglee.org
DocumentRoot /var/www/virtual/timinglee.org/news
CustomLog /etc/httpd/logs/news.log combined
</VirtualHost>

<VirtualHost *:80>
ServerName bbs.timinglee.org
DocumentRoot /var/www/virtual/timinglee.org/bbs
CustomLog /etc/httpd/logs/bbs.log combined
</VirtualHost>

测试

#在哪里测试就在那个主机中做解析
[root@nfs-server ~]# vim /etc/hosts
172.25.254.100 nfs-server www.timinglee.org news.timinglee.org bbs.timinglee.org


[root@nfs-server ~]# curl www.timinglee.org
172.25.254.100
[root@nfs-server ~]# curl bbs.timinglee.org
bbs.timinglee.org
[root@nfs-server ~]# curl news.timinglee.org
news.timinglee.org

七、Apache的https访问

1.生成证书

[root@nfs-server ~]# mkdir /etc/httpd/certs
[root@nfs-server ~]# openssl req -newkey rsa:2048 -nodes -sha256 -keyout /etc/httpd/certs/timinglee.org.key -x509 -days 365 -out /etc/httpd/certs/timinglee.org.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Shannix
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@nfs-server ~]# ls /etc/httpd/certs/
timinglee.org.crt timinglee.org.key

2.安装加密套件

[root@nfs-server ~]# dnf install mod_ssl -y
[root@nfs-server ~]# mkdir /var/www/virtual/timinglee.org/login -p
[root@nfs-server ~]# echo login.timinglee.org > /var/www/virtual/timinglee.org/login/index.html

3.配置加密

[root@nfs-server ~]# vim /etc/httpd/conf.d/vhosts.conf
<VirtualHost *:80>
ServerName login.timinglee.org
RewriteEngine On
RewriteRule ^/(.*)$ https://login.timinglee.org/$1 [R=301] #导向443
</VirtualHost>

<VirtualHost *:443>
ServerName login.timinglee.org
DocumentRoot /var/www/virtual/timinglee.org/login
CustomLog /etc/httpd/logs/login.log combind
SSLEngine on
SSLCertificateFile /etc/httpd/certs/timinglee.org.crt
SSLCertificateKeyFile /etc/httpd/certs/timinglee.org.key
</VirtualHost>
[root@nfs-server ~]# systemctl restart httpd

注意:https和http端口不一致

测试

[root@nfs-server ~]# vim /etc/hosts
172.25.254.100 nfs-server www.timinglee.org news.timinglee.org bbs.timinglee.org login.timinglee.org

[root@nfs-server ~]# curl -kL login.timinglee.org
login.timinglee.org

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 3:04:59

Android模拟器配置与性能优化全指南

1. Android模拟器概述与选型指南作为一名移动开发者&#xff0c;我深知在电脑上运行Android应用进行调试的重要性。Android模拟器作为开发过程中的核心工具&#xff0c;能够极大提升我们的工作效率。不同于真机调试&#xff0c;模拟器提供了更灵活的环境配置和更高效的测试流程…

作者头像 李华
网站建设 2026/7/19 3:04:45

Scala编程语言:多范式融合与JVM生态实践

1. Scala语言概述Scala是一种多范式编程语言&#xff0c;完美融合了面向对象和函数式编程的特性。它运行在Java虚拟机(JVM)上&#xff0c;与Java完全互操作&#xff0c;同时提供了更简洁、更富有表现力的语法。Scala这个名字来源于"Scalable Language"&#xff0c;意…

作者头像 李华
网站建设 2026/7/19 3:03:10

Python Flask实现安全登录系统:从基础到实践

1. Python简单登录系统实现概述登录功能是绝大多数Web应用的基础模块&#xff0c;也是Python初学者最常接触的实战项目之一。不同于大型网站的复杂登录机制&#xff0c;一个基础的Python登录系统通常包含以下几个核心组件&#xff1a;用户输入验证、密码加密存储、会话管理和简…

作者头像 李华
网站建设 2026/7/19 3:02:35

【动手学深度学习】softmax回归

我们开始吧。这次我们紧扣李沐老师《动手学深度学习》的理论和代码&#xff0c;把Softmax回归完整地过一遍。一、理论核心&#xff1a;为什么要用Softmax&#xff1f; 从回归到分类 李沐老师指出&#xff0c;回归是预测“是多少”&#xff08;如房价&#xff09;&#xff0c;而…

作者头像 李华
网站建设 2026/7/19 3:02:15

抖音下载神器终极指南:30天从新手到高手的完整成长路径

抖音下载神器终极指南&#xff1a;30天从新手到高手的完整成长路径 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…

作者头像 李华