第2章:进阶Linux系统——第6节:配置与管理Web服务器

张开发
2026/4/8 2:15:54 15 分钟阅读

分享文章

第2章:进阶Linux系统——第6节:配置与管理Web服务器
目录一、项目整体框架二、知识准备一Web 服务工作流程二Linux 主流 Web 服务器三LAMP 架构重点三、Apache 基础安装与环境配置一安装 Apachehttpd二基础环境准备三Apache 默认信息四Apache 服务管理命令四、Apache 主配置文件 httpd.conf 详解一全局环境配置影响整个服务器二主服务器配置核心站点三虚拟主机配置五、项目实施核心功能配置一配置用户个人主页二配置虚拟目录三配置虚拟主机三种方式1. 基于端口的虚拟主机同 IP、不同端口2. 基于 IP 的虚拟主机多 IP 对应多站点3. 基于域名的虚拟主机同 IP、多域名四访问控制Apache 2.4 语法五用户身份认证密码访问六、反思与进阶综合实战七、扩展知识补充学习1. Apache 与 Nginx 核心区别2. 虚拟主机最佳实践3. 安全加固建议4. 日志分析5. 常见排错命令八、项目小结一、项目整体框架本项目目标为学院搭建 Web 站点提供教师个人主页实现多站点、安全访问的 Web 服务。项目引入学院官网 教师个人主页需求分析选 Web 软件、配置安全环境、掌握虚拟主机与用户认证知识准备Web 原理、主流服务器、LAMP 架构项目实施Apache 安装→配置→虚拟目录→虚拟主机→访问控制→用户认证反思进阶综合实战虚拟目录 用户认证小结核心知识点总结二、知识准备一Web 服务工作流程Web 客户端浏览器服务器Apache/Nginx完整请求 - 响应流程浏览器输入 URL → 发送 HTTP 请求服务器将 URL 转为服务器文件路径服务器执行后端代码、操作数据库数据库返回结果给服务器服务器将结果嵌入页面服务器返回页面给客户端浏览器渲染显示页面二Linux 主流 Web 服务器服务器特点适用场景Nginx轻量、低内存、高并发、反向代理 / 负载均衡高并发网站、静态资源、API 服务Apache稳定、跨平台、模块丰富、兼容好传统网站、PHP 站点、中小企业Lighttpd极低资源占用、高性能小型站点、嵌入式设备三LAMP 架构重点LAMP Linux Apache MySQL/MariaDB PHP/Perl/Python全球最流行 Web 架构70% 流量使用优点开源免费、跨平台、轻量、开发快、资源丰富对比 Java/J2EE更轻量对比 .NET跨平台、低成本三、Apache 基础安装与环境配置一安装 ApachehttpdRHEL7/CentOS7 中 Apache 软件包名为httpd# 检查是否安装 rpm -q httpd # YUM 安装 yum install httpd -y # 验证安装 rpm -qa | grep httpd二基础环境准备配置静态 IP示例172.16.43.253vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 修改 BOOTPROTOstatic添加 IPADDR/NETMASK/GATEWAY/DNS1 systemctl restart network关闭防火墙并禁止开机自启systemctl stop firewalld systemctl disable firewalld关闭 SELinux临时 永久# 临时关闭 setenforce 0 # 永久关闭 vi /etc/selinux/config → SELINUXpermissive getenforce # 验证为 Permissive三Apache 默认信息配置根目录/etc/httpd运行用户 / 组apache默认监听端口80HTTP、443HTTPS网站根目录/var/www/html主配置文件/etc/httpd/conf/httpd.conf日志目录/var/log/httpd/access_log/error_log四Apache 服务管理命令# 启动 systemctl start httpd # 重启 systemctl restart httpd # 停止 systemctl stop httpd # 查看状态 systemctl status httpd # 开机自启 systemctl enable httpd安装启动后浏览器访问http://服务器IP可看到 Apache 默认测试页。四、Apache 主配置文件 httpd.conf 详解/etc/httpd/conf/httpd.conf是核心配置文件不区分大小写#为注释修改后必须重启服务生效。一全局环境配置影响整个服务器指令作用ServerRootApache 配置 / 日志根目录默认 /etc/httpdListen监听 IP 端口默认 Listen 80LoadModule动态加载模块Include conf.d/*.conf加载子配置文件User/Group运行服务的用户 / 组默认 apacheKeepAlive是否长连接On/OffMaxKeepAliveRequests单连接最大请求数KeepAliveTimeout长连接超时时间秒二主服务器配置核心站点DocumentRoot网站文件存放目录默认/var/www/htmlDirectory 容器目录权限控制Directory / AllowOverride none Require all denied # 禁止访问根目录安全加固 /Directory Directory /var/www/html Options Indexes FollowSymLinks AllowOverride None Require all granted # 允许所有访问 /DirectoryIndexes无默认首页时显示文件列表FollowSymLinks允许访问符号链接AllowOverride是否允许.htaccess覆盖配置ServerAdmin管理员邮箱ServerName服务器主机名IP 或域名AddDefaultCharset默认字符集UTF-8ErrorLog/CustomLog错误日志 / 访问日志路径三虚拟主机配置一台服务器运行多个网站支持三种方式基于 IP多 IP 对应多站点基于域名同 IP、不同域名基于端口同 IP、不同端口五、项目实施核心功能配置一配置用户个人主页作用系统用户可通过~用户名访问个人站点开启个人主页功能vi /etc/httpd/conf.d/userdir.conf # 注释 UserDir disabled # 启用 UserDir public_html设置用户家目录权限chmod 755 /home/用户名创建个人主页目录mkdir /home/用户名/public_html echo 个人主页内容 /home/用户名/public_html/index.html重启服务并测试systemctl restart httpd # 访问http://IP/~用户名二配置虚拟目录作用访问不在/var/www/html内的目录用别名映射语法Alias 虚拟目录别名 实际物理路径示例创建/test虚拟目录 →/var/www/test创建物理目录与首页mkdir -p /var/www/test echo 虚拟目录测试页 /var/www/test/index.html chmod 705 /var/www/test/index.html修改 httpd.conf 添加虚拟目录Alias /test/ /var/www/test/ Directory /var/www/test/ Options Indexes MultiViews FollowSymLinks AllowOverride None Require all granted /Directory重启服务访问http://IP/test/三配置虚拟主机三种方式1. 基于端口的虚拟主机同 IP、不同端口主配置添加监听端口Listen 80 Listen 8888 Listen 6666在/etc/httpd/conf.d/新建独立配置文件8888.confVirtualHost 172.16.43.253:8888 DocumentRoot /home ServerName 172.16.43.253:8888 DirectoryIndex ceshi1.html Directory /home Require all granted /Directory /VirtualHost6666.confVirtualHost 172.16.43.253:6666 DocumentRoot /var/www ServerName 172.16.43.253:6666 DirectoryIndex ceshi2.html Directory /var/www Require all granted /Directory /VirtualHost重启服务测试curl 172.16.43.253:8888 curl 172.16.43.253:66662. 基于 IP 的虚拟主机多 IP 对应多站点绑定虚拟网卡多 IPifconfig ens33:1 172.16.43.249 netmask 255.255.255.0新增 IP 虚拟主机配置index_ip.confVirtualHost 172.16.43.249:80 DocumentRoot /var/www/html ServerName 172.16.43.249 /VirtualHost重启服务分别访问不同 IP3. 基于域名的虚拟主机同 IP、多域名配置 DNS 解析或本地 hosts新建域名虚拟主机配置# www.conf VirtualHost 172.16.43.253:80 DocumentRoot /home ServerName www.zhiyuan.com DirectoryIndex ceshi1.html /VirtualHost重启服务用域名访问四访问控制Apache 2.4 语法通过Require指令控制访问权限# 禁止所有访问 Require all denied # 允许所有访问 Require all granted # 仅允许某个域名 Require host zhiyuan.com # 允许 IP/网段禁止单个 IP Require ip 192.168.0.0/24 172.16.43.254 Require not ip 192.168.0.100五用户身份认证密码访问作用访问目录需输入用户名密码保护敏感资源安装工具httpd 自带yum install httpd-tools -y创建密码文件.htpasswd# -c 创建新文件添加用户 test1 htpasswd -c /var/www/test/.htpasswd test1 # 按提示输入密码配置目录允许认证Directory /var/www/test AllowOverride AuthConfig # 启用 .htaccess Require all granted /Directory创建.htaccess认证文件AuthName 请登录 AuthType Basic AuthUserFile /var/www/test/.htpasswd Require user test1 # 仅允许 test1 访问重启服务访问时弹出密码框六、反思与进阶综合实战需求虚拟目录/test→/var/www/test仅test1密码 123456可访问显示目录列表步骤配置 IP、关闭防火墙 / SELinux创建/var/www/test及子目录用htpasswd创建用户 test1配置虚拟目录 AllowOverride AuthConfig编写.htaccess认证规则重启服务测试七、扩展知识补充学习1. Apache 与 Nginx 核心区别Apache同步多进程稳定兼容适合动态请求Nginx异步非阻塞高并发低内存适合静态 / 反向代理2. 虚拟主机最佳实践生产环境优先基于域名节省 IP测试环境可用基于端口多网卡 / 多 IP 场景基于 IP3. 安全加固建议禁止根目录访问Require all denied关闭 Indexes避免显示文件列表使用.htpasswd加密存储密码开启 HTTPS配置 SSL 证书监听 4434. 日志分析access_log记录所有访问请求error_log记录错误、配置问题、攻击尝试可配合 AWStats、GoAccess 做可视化分析5. 常见排错命令# 检查配置语法 httpd -t # 查看服务日志 tail -f /var/log/httpd/error_log # 端口监听 netstat -tulpn | grep httpd八、项目小结掌握 Web 工作原理与 LAMP 架构熟练 Apache 安装、启停、基础配置会配置虚拟目录、个人主页、三种虚拟主机掌握访问控制与用户身份认证能部署安全、可用的 Web 服务

更多文章