第9章 配置与管理 Web 服务器_第1页
第9章 配置与管理 Web 服务器_第2页
第9章 配置与管理 Web 服务器_第3页
第9章 配置与管理 Web 服务器_第4页
第9章 配置与管理 Web 服务器_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章

配置与管理Web服务器本章导读在互联网蓬勃发展的当下,Web服务器作为网站运行的核心支撑,承担着响应客户端请求、处理并发访问及保障服务可用性的关键角色。本章聚焦Web服务器的配置与管理,从Web服务的基础知识出发,深入讲解Apache和Nginx服务器的安装、配置、日志分析及安全设置等内容,助力读者掌握搭建与维护Web服务器的实用技能。学习目标1.知识目标了解Web服务的基本概念以及HTTP与HTTPS协议的特点。熟悉Apache和Nginx服务器的功能与优势。了解Apache服务器主配置文件httpd.conf的结构和作用。了解Apache日志的文件类型及AWStats日志分析程序的功能。掌握Apache安全配置的相关知识,如访问控制、用户认证等。了解虚拟主机的概念及不同类型虚拟主机的配置方法。熟悉Nginx服务器的安装与基本配置流程。2.技能目标能够独立完成Apache和Nginx服务器的安装、启动、停止等基本操作。可以根据需求对Apache服务器进行常规设置,如修改监听端口、设置默认首页等。能够实现用户个人主页设置和虚拟目录创建。能够安装、配置AWStats日志分析程序,并使用其分析Apache日志。可以进行Apache服务器的安全配置,如设置访问权限、实现用户认证等。能够熟练配置不同类型(IP型、域名型、端口型)的虚拟主机。面对Apache和Nginx服务器的常见问题,如无法启动、图片盗链等,能运用所学知识进行排查和解决。3.素养目标培养严谨、细致的服务器配置与管理态度,注重服务器的安全性和稳定性。提升自主学习和解决问题的能力,适应不断变化的Web服务技术需求。强化团队协作意识,在多服务器环境中能够合理规划和管理Web服务,保障网站的正常运行。目录-CONTENTS9.1Web服务的相关知识9.2安装Apache服务器9.3配置Apache服务器9.5Apache服务器的安全配置9.6综合案例:配置虚拟主机9.7Nginx服务器的安装与配置9.4日志分析9.8安全分析与故障处理9.1Web服务的相关知识9.1.1Web服务概述9.1.2常用的服务器9.1Web服务的相关知识1.Web服务简介

Web服务是基于超文本传输协议的分布式计算模型,其核心在于通过互联网实现信息资源的共享与交互,使用户可以通过浏览器等客户端软件访问位于远程服务器上的网页资源。Web服务采用客户端-服务器模型,客户端发送请求至服务器,服务器处理请求并返回响应,最终呈现于用户界面。2.HTTP与HTTPSHTTPS的实现依赖公钥基础设施(PublicKeyInsfructure,PKI),需向证书颁发机构申请数字证书,并在服务器端完成SSL/TLS协议的配置支持。9.1.1Web服务概述Web服务的协议说明特点HTTPWeb服务的基础协议,它定义了客户端与服务器间数据传输的规则①

无状态性:每次请求独立处理,不保留会话状态。②

明文传输:数据以纯文本形式传输,存在安全隐患。③

请求-响应模式:客户端发起请求,服务器返回响应。HTTPSHTTP的安全增强版本,通过SSL/TLS协议加密传输数据①

数据加密:防止中间人(Man-in-the-MiddleMITM)攻击和数据窃取。②

身份验证:通过数字证书验证服务器身份,防止域名劫持。③

完整性校验:确保数据在传输过程中不会被篡改。9.1Web服务的相关知识9.1.2常用的Web服务器常用的Web服务器软件说明特点ApacheApache是开源Web服务器软件的代表,由Apache软件基金会维护①

跨平台性:支持Linux、UNIX、Windows等多种操作系统。②

模块化架构:通过动态加载模块(如mod_rewrite、mod_ssl)扩展功能。③

高可靠性:经长期实践验证,广泛应用于企业级环境。④

社区支持:拥有庞大的开发者社区和丰富的文档资源。Nginx由IgorSysoev开发的轻量级Web服务器软件,以高性能、低资源消耗著称①

异步非阻塞架构:采用事件驱动模型,处理高并发请求时效率显著优于传统进程/线程模型。②

反向代理与负载均衡:支持TCP/UDP代理、HTTP缓存及动态内容分发。③

动态脚本支持:通过FastCGI、uWSGI等接口与PHP、Python等后端服务交互。④

静态资源处理:优化文件传输性能,适合高流量静态网站。9.2安装Apache服务器9.2.1Apache服务器的安装9.2.2Apache服务器的启动、停止、重启和开机自启设置9.2安装Apache服务器(1)更新系统包索引9.2.1Apache服务器的安装dnfupdate-y(2)安装Apache软件包。dnfinstall-yhttpd(3)验证安装结果[root@localhost~]#httpd-vServerversion:Apache/2.4.62(RockyLinux)Serverbuilt:Jan10202500:00:00安装过程中,DNF将自动处理依赖关系,并安装如下核心组件。①

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

默认网站目录:/var/www/html。③

服务单元文件:/usr/lib/systemd/system/httpd.service。④

日志文件:/var/log/httpd/,其中包含访问日志(access_log)与错误日志(error_log)。Apache的目录结构说明路径用途/etc/httpd/Apache主配置目录,包含httpd.conf及conf.d/(附加配置片段)。/var/www/html/默认网站根目录,存放HTML文件(如index.html)。/var/log/httpd/日志目录,包含access_log、error_log等。/usr/lib64/httpd/Apache模块二进制文件目录。/run/httpd/运行时文件(如PID文件、套接字)。9.2安装Apache服务器(1)启动Apache服务:9.2.2Apache服务器的启动、停止、重启和开机自启设置systemctlstarthttpd(2)停止Apache服务:systemctlstophttpd(3)重启Apache服务:systemctlrestarthttpd#完全重启(终止所有进程)systemctlreloadhttpd#仅重载配置(推荐)(4)查询服务状态:systemctlenablehttpd(5)设置开机自启:[root@localhost~]#systemctlstatushttpd●httpd.service-TheApacheHTTPServerLoaded:loaded(/usr/lib/systemd/system/httpd.service;disabled;preset:disabled)Active:active(running)sinceTue2025-05-0618:03:56CST;4h33minago…省略部分代码…firewall-cmd--permanent--add-service=httpfirewall-cmd--permanent--add-service=httpsfirewall-cmd--reload(6)防火墙配置:9.3配置Apache服务器9.3.1Apache服务器的主配置文件httpd.conf9.3.2服务器常规设置9.3.3知识案例:设置用户个人主页9.3.4知识案例:创建虚拟目录9.3配置Apache服务器(1)主配置文件路径在RockyLinux9中,Apache的核心配置文件为/etc/httpd/conf/httpd.conf。该文件通过Include指令加载其他模块化配置,如/etc/httpd/conf.d/*.conf。(2)配置文件结构解析9.3.1Apache服务器的主配置文件httpd.confServerRoot"/etc/httpd"#Apache安装目录Listen80#监听端口Userapache#服务运行用户Groupapache#服务运行组②

主服务器配置段DocumentRoot"/var/www/html"#默认网站根目录DirectoryIndexindex.html#默认首页文件ErrorLog"/var/log/httpd/error_log"#错误日志路径③

模块化配置段apachectlconfigtesthttpd-t(3)配置文件语法检查或者使用httpd-t命令:IncludeOptionalconf.d/*.conf#加载其他配置文件①

全局设置段若输出SyntaxOK,则表示配置正确,否则需根据提示修正错误。9.3配置Apache服务器(1)修改监听端口在httpd.conf中修改Listen指令,以更改服务端口(如改为8080):9.3.2服务器常规设置DocumentRoot"/srv/www"<Directory"/srv/www">OptionsIndexesFollowSymLinksAllowOverrideNoneRequireallgranted</Directory>②

创建目录并放置测试文件:mkdir-p/srv/wwwecho"<h1>TestPage</h1>"|sudotee/srv/www/index.html(3)配置默认首页通过DirectoryIndex指令指定优先级(如index.php优先于index.html):<Directory"/var/www/html">OptionsIndexesFollowSymLinksAllowOverrideNoneRequireallgranted</Directory>(4)启用目录列表功能在<Directory>块中添加OptionsIndexes指令,以允许无首页文件时显示目录内容:DirectoryIndexindex.phpindex.html(2)设置默认网站根目录①

修改DocumentRoot指令,以指定其他目录(如/srv/www):Listen8080(1)场景需求在Apache服务器中为系统用户boss配置个人主页空间,用户家目录为/home/boss,个人主页存储目录为/home/boss/public_html(即通过URLhttp://<IP地址>/~boss进行访问)。(2)前置准备①

创建用户boss并为其设置密码:[root@localhost~]#useraddboss[root@localhost~]#passwdboss#设置密码②

确认Apache服务已运行:[root@localhost~]#systemctlstatushttpd#应为active状态(3)配置步骤①

创建用户boss的个人主页目录并设置权限:[root@localhost~]#mkdir-p/home/boss/public_html#创建个人网站目录[root@localhost~]#chmod755/home/boss#确保用户目录可访问[root@localhost~]#chmod711/home/boss/public_html#仅用户可写入,其他用户可读取②

添加测试页面:[root@localhost~]#echo"<h1>WelcometoBoss'sHomepage</h1>">/home/boss/public_html/index.html9.3配置Apache服务器9.3.3知识案例:设置用户个人主页③

编辑/etc/httpd/conf.d/userdir.conf(默认配置文件),取消或添加以下行的注释,以启用用户目录功能:#UserDirdisabledUserDirpublic_html#指定用户目录的子路径为public_html<Directory"/home/*/public_html">AllowOverrideFileInfoAuthConfigLimitIndexes#允许.htaccess覆盖部分配置RequiremethodGETPOSTOPTIONS#限制允许的HTTP方法</Directory>④

重启Apache服务:[root@localhost~]#systemctlrestarthttpd(4)验证与访问①

进行本地测试[root@localhost~]#curlhttp://localhost/~boss/<h1>WelcometoBoss'sHomepage</h1>在浏览器中输入URL29/~boss/,应显示测试页面,如图9.3配置Apache服务器9.3.3知识案例:设置用户个人主页(1)场景需求在Apache服务器上将特定路径(如/files)映射到物理目录(如/data/shared),使用户能够通过http://server/files访问服务器本地资源,并在此过程中实施访问权限控制和安全性管理。(2)操作步骤①

创建物理目录并放置文件:[root@localhost~]#mkdir-p/data/shared/files[root@localhost~]#echo"Thisisatestfile.">/data/shared/files/sample.txt[root@localhost~]#chmod755/data/shared/files#确保Apache可读取②

编辑Apache主配置文件(或新建配置片段):[root@localhost~]#vi/etc/httpd/conf.d/virtual_dir.conf添加内容:Alias/files"/data/shared/files"#将URL路径映射到物理目录<Directory"/data/shared/files">Options+Indexes+FollowSymLinks#启用目录列表和符号链接(可选)AllowOverrideNone#禁用.htaccess,以提高安全性Requireallgranted#允许所有请求访问(可替换为IP限制)#可选:限制文件类型<FilesMatch"\.(txt|pdf)$">HeadersetContent-Disposition"attachment"#强制下载而非浏览器打开</FilesMatch></Directory>9.3配置Apache服务器9.3.4知识案例:创建虚拟目录Alias:用于定义URL路径与物理目录的映射关系。Options:用于控制目录行为,如使用-Indexes可禁用目录列表,使用+FollowSymLinks则允许跟踪符号链接。Require:用于控制访问权限,如Requireip/24表示仅允许内网访问。③

重启Apache服务:[root@localhost~]#systemctlrestarthttpd(3)访问测试①

进行本地测试[root@192~]#curlhttp://localhost/files/sample.txtThisisatestfile.9.3配置Apache服务器9.3.4知识案例:创建虚拟目录②

输入http://服务器IP/files,若已启用Indexes选项,则显示目标目录的文件列表,否则将直接提供文件下载,如图9.4日志分析9.4.1Apache日志文件9.4.2安装AWStats日志分析程序9.4.3配置AWStats9.4.4使用AWStats分析日志Apache默认生成两类日志,即访问日志和错误日志,用于记录用户请求和服务器运行状态,路径通常为/var/log/httpd/,具体说明如下所示。1.访问日志(access_log)

access_log用于记录每次HTTP请求的相关信息,格式示例如下:--[03/May/2025:18:05:57+0800]"GET/files/HTTP/1.1"200884"-""Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/Safari/537.36Edg/"9.4日志分析9.4.1Apache日志文件①

:表示发起HTTP请求的客户端IP地址,即请求来自于该IP的设备。②-:第二个字段通常是客户端的主机名。当无法解析客户端的主机名时,会显示为-。这里由于未解析出主机名,所以显示为-。③-:第三个字段是客户端进行身份验证的用户名。若未进行身份验证,则显示为-。这里没有进行身份验证,所以也是-。④[03/May/2025:18:05:57+0800]:表示服务器接收到请求的时间,格式为[日/月/年份:小时:分钟:秒

时区],这里的+0800表示东八区时区。⑤"GET/files/HTTP/1.1":记录了客户端发送的请求信息,其中GET是请求方法,/files/是请求的资源路径,HTTP/1.1是使用的HTTP协议版本。常见的请求方法还有POST、PUT、DELETE等。⑥200:服务器返回给客户端的HTTP状态码。200表示请求成功,即服务器已成功处理请求并返回了相应的资源。不同的状态码有不同的含义,例如404表示请求的资源未找到,500表示服务器内部错误等。⑦884:服务器返回给客户端响应内容的字节数,这里返回的内容大小为884字节。⑧"-":表示请求的来源页面(即Referer字段)。若请求没有来源页面(比如用户直接在浏览器地址栏输入网址进行访问),则显示为-。⑨"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/Safari/537.36Edg/":客户端的用户代理信息,用于标识客户端的类型,如浏览器类型、操作系统等。这里表明客户端使用的是基于Chromium内核的MicrosoftEdge浏览器,运行在64位的Windows10操作系统上。2.错误日志(error_log)

error_log用于记录服务器异常信息,格式示例如下:[MonOct1013:55:402025][error][client00]Filedoesnotexist:/var/www/html/404.html9.4日志分析9.4.1Apache日志文件①[MonOct1013:55:402025]:这部分记录了服务器记录该错误信息的具体日期和时间,格式为[星期月日小时:分钟:秒年份],表明此错误发生在2025年10月10日星期一的13点55分40秒。②[error]:指出该日志记录的级别为“error”(错误)。Apache服务器有多种日志级别,如debug(调试)、info(信息)、notice(通知)、warn(警告)、error(错误)、crit(严重)、alert(警报)、emerg(紧急)等。error级别表示服务器遇到了一个导致请求无法正常处理的错误情况。③[client00]:记录了发起请求的客户端IP地址为00,说明是来自这个IP地址的客户端请求导致了服务器出现相关错误。④Filedoesnotexist:/var/www/html/404.html:详细说明了错误的具体内容。在这个例子中,服务器提示指定的文件/var/www/html/404.html不存在。这通常是因为客户端请求的资源不存在,服务器尝试返回一个自定义的404错误页面(这里是/var/www/html/404.html),但该文件在指定路径下未找到,因此记录了这个错误信息。AWStats是一个开源的日志分析工具,可将Apache日志转换为可视化报表。AWStats支持以下功能。①

流量统计:统计网站的访问量、独立访客(UniqueVistorUV)数和页面浏览(PageView,PV)量。②

来源分析:分析访问来源的域名及搜索引擎使用的关键词。③

地理分布分析:根据访问者IP分析其所在的国家或地区。④

响应状态分析:对服务器响应状态码进行统计,如404、405等错误发生的次数。⑤

文件类型统计:分析各类文件的访问情况,包括图片、CSS、JavaScript等资源。1.下载awstats安装包[root@localhost~]#dnfinstallwget-y#安装wget工具(用于下载文件)[root@localhost~]#wget-P/tmp//awstats/awstats-7.9.tar.gz…省略部分代码…Savingto:‘/tmp/awstats-7.9.tar.gz’awstats-7.9.tar.gz100%[======================================================>]2.81M430KB/sin6.4s2025-05-0918:00:23(451KB/s)-‘/tmp/awstats-7.9.tar.gz’saved[2948602/2948602]9.4日志分析9.4.2安装AWStats日志分析程序2.解压awstats安装包[root@localhost~]#tar-zxvf/tmp/awstats-7.9.tar.gz②

将解压后的文件夹移动到/usr/local/目录下并重命名为awstats:[root@localhost~]#mvawstats-7.9/usr/local/awstats3.安装Perl依赖[root@localhost~]#dnfinstallperl-y4.运行配置工具

进入AWStats的tools目录,该目录包含配置脚本:[root@localhost~]#cd/usr/local/awstats/tools/[root@localhost~]#ls9.4日志分析9.4.2安装AWStats日志分析程序②

运行配置脚本,该脚本将引导用户完成基本配置:[root@localhost~]#./awstats_configure.plAWStats日志分析工具的配置过程如图1.修改AWStats配置文件

修改awstats配置文件/etc/awstats/.conf的日志文件路径(根据实际日志路径进行调整):vi+50/etc/awstats/.conf#将包含“logFile”的行(大约第50行)修改为:LogFile="/var/log/httpd/access_log"9.4日志分析9.4.3配置AWStats2.创建虚拟主机配置文件/etc/httpd/conf.d/awstats.conf[root@localhost~]#tee/etc/httpd/conf.d/awstats.conf<<EOF<VirtualHost*:80>ServerNameServerAliasDocumentRoot"/usr/local/awstats/wwwroot"ScriptAlias/awstats/"/usr/local/awstats/wwwroot/cgi-bin/"<Directory"/usr/local/awstats/wwwroot">OptionsNoneAllowOverrideNoneRequireallgranted</Directory>#CGI脚本目录配置<Directory"/usr/local/awstats/wwwroot/cgi-bin">Options+ExecCGIAllowOverrideNoneRequireallgrantedAddHandlercgi-script.pl</Directory></VirtualHost>EOF3.建立数据目录[root@localhost~]#mkdir/var/lib/awstats[root@localhosttools]#chown-Rapache:apache/var/lib/awstats[root@localhosttools]#chmod-R755/var/lib/awstats4.设置计划任务

编辑当前用户的crontab文件[root@localhost~]#crontab-e#每5分钟自动更新统计数据*/5****/usr/local/awstats/tools/awstats_updateall.plnow②

查看计划任务,确认计划任务已正确添加:[root@localhosttools]#crontab-l*/5****/usr/local/awstats/tools/awstats_updateall.plnow9.4日志分析9.4.3配置AWStats③

手动执行一次更新,以生成初始统计数据:[root@localhost~]#/usr/local/awstats/tools/awstats_updateall.plnow5.重启服务①

重启Apache服务使配置生效:[root@localhost~]#systemctlrestarthttpd②

重启crond服务使计划任务生效:[root@localhost~]#systemctlrestartcrond6.访问测试

如果是本地测试环境,需在本地hosts文件中添加映射:[root@localhost~]#echo"29"|sudotee-a/etc/hosts9.4日志分析9.4.3配置AWStats访问AWStats的Web界面可查看更新后的统计数据,访问地址的格式为http://IP或域名/awstats/awstats.pl?config=域名,如图AWStats安装配置完成后,可以通过Web界面或命令行方式分析Apache日志。详细介绍如下。1.通过Web界面访问AWStats(1)访问方式①

打开浏览器,输入/awstats/awstats.pl?config=进行访问。②

使用IP地址http://服务器IP/awstats/awstats.pl?config=进行访问。(2)界面功能①

主界面:显示当月或当天的访问摘要,包括PV、UV、访问量等。②

左侧导航菜单:提供各种分析维度的链接。2.主要分析功能详解

(1)流量统计①

访问量:服务器接收到的所有请求总数。②

独立访客:基于IP和User-Agent标识的唯一用户数量。③

页面浏览量:实际页面请求数量。④

访问次数:连续请求的会话数(默认情况下,30分钟无活动视为新会话)。(2)来源分析①

引用来源:分析访问流量的来源途径,主要包括直接访问(用户直接输入URL或通过书签进行访问)、外部链接(从其他网站链接跳转过来的访问)以及搜索引擎(通过搜索引擎检索关键词带来的访问)。②

搜索引擎关键词:统计带来流量的搜索关键词,支持主流搜索引擎(包括Google、Bing、百度等)。9.4日志分析9.4.4使用AWStats分析日志(3)地理分布分析①

访问者国家/地区:基于访问者的IP地址进行地理位置分析。②

城市级别定位:部分IP可定位到城市级别。(4)系统分析①

浏览器统计:统计访问者使用的浏览器类型及版本。②

操作系统统计:统计访问者使用的操作系统。③

屏幕分辨率:统计访问者的屏幕设置情况。(5)文件类型统计①HTML页面:统计HTML类文件的请求情况。②

图片:统计JPG、PNG、GIF等图像资源的使用情况。③CSS:统计CSS文件的请求与加载情况。④JavaScript文件:统计JS文件的访问情况。⑤

其他资源:统计PDF、视频等其他各类文件的使用情况。(6)响应状态分析统计HTTP状态码的出现次数主要包括如下几种。①200OK:成功请求。②301/302:重定向响应。③404:请求资源未找到。④500:服务器错误等。9.4日志分析9.4.4使用AWStats分析日志9.5Apache服务器的安全配置9.5.1访问控制9.5.2用户认证9.5.3分布式配置文件1.基于IP地址的访问控制

Apache提供了<Directory>、<Location>和<Files>等指令块,结合Order、Allow和Deny指令(Apache2.2及之前版本)或Require指令(Apache2.4及之后版本),实现对特定IP地址或网络段的访问控制。以Apache2.4为例,要允许/24网段访问,而拒绝其他所有IP的访问:<Directory"/var/www/html">Requireip/24</Directory>2.基于用户代理的访问控制

通过SetEnvIf指令与<If>指令块的结合,可以实现对特定用户代理(如浏览器类型、爬虫等)的访问控制:SetEnvIfUser-Agent"BadBot"bad_bot<If"%{ENV:bad_bot}=='1'">Requirealldenied</If>9.5Apache服务器的安全配置9.5.1访问控制3.基于请求方法的访问控制

使用<Limit>或<LimitExcept>指令块,可以限制特定HTTP方法(如GET、POST、PUT、DELETE等)的使用:<Directory"/var/www/html/admin"><LimitExceptGETPOST>Requirealldenied</LimitExcept></Directory>1.基本认证

基本认证通过明文(Base64编码)传输用户名和密码,是Apache最基础的HTTP认证方式。基本认证通过AuthTypeBasic配置,示例如下:<Directory"/var/www/html/admin">AuthTypeBasicAuthName"RestrictedArea"AuthUserFile/etc/httpd/.htpasswd#存储加密密码的文件Requirevalid-user#允许所有认证用户</Directory>9.5Apache服务器的安全配置9.5.2用户认证2.摘要认证

摘要认证基于MD5哈希算法加密传输凭证,避免了密码在网络中明文传输,比基本认证更安全。摘要认证需指定认证类型为Digest,并配置AuthDigestProvider及其他相关参数,示例如下:<Directory"/var/www/html/secure">AuthTypeDigestAuthName"PrivateContent"AuthDigestDomain/secure/#指定受保护路径AuthDigestProviderfileAuthUserFile/etc/httpd/.htdigest#存储加密凭证的专用文件Requirevalid-user</Directory>3.LDAP认证

LDAP认证通过LDAP对接企业目录服务(如ActiveDirectory),用于实现单点登录(singsion,SSO)。LDAP认证需要mod_authnz_ldap模块支持,示例如下:<Directory"/var/www/html/ldap-protected">AuthTypeBasicAuthName"LDAPProtected"AuthBasicProviderldapAuthLDAPURL"ldap:///ou=users,dc=example,dc=com?uid"#LDAP查询路径AuthLDAPBindDN"cn=admin,dc=example,dc=com"#管理员绑定DNAuthLDAPBindPassword"admin_password"#管理员密码(需加密存储)Requireldap-groupcn=developers,ou=groups,dc=example,dc=com#限制访问的LDAP组</Directory>9.5Apache服务器的安全配置9.5.2用户认证4.证书认证

证书认证基于SSL/TLS客户端证书实现双向身份认证,用户需持有有效证书才能访问。证书认证需启用mod_ssl模块支持,示例如下:<Directory"/var/www/html/cert-protected">SSLVerifyClientrequire#强制要求客户端证书验证SSLVerifyDepth2#允许的证书链深度SSLOptions+StdEnvVars#将证书信息传递给后端程序Requirevalid-user#仅允许证书认证通过的用户访问</Directory>.htaccess文件是Apache服务器的一种分布式配置文件,允许在特定目录及其子目录中覆盖主配置文件中的设置,而无须修改主配置文件或重启Apache服务。这为Web站点的灵活配置与管理提供了极大便利。<Directory"/var/www/html">AllowOverrideAll#或指定允许的指令类型,如:#AllowOverrideAuthConfigFileInfo</Directory>9.5Apache服务器的安全配置9.5.3分布式配置文件2..htaccess文件示例

在需要特殊配置的目录下创建.htaccess文件,并写入相应的Apache指令:#示例:重定向所有请求到HTTPSRewriteEngineOnRewriteCond%{HTTPS}offRewriteRule(.*)https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]

#示例:设置密码保护AuthTypeBasicAuthName"PrivateArea"AuthUserFile/path/to/.htpasswdRequirevalid-user1.启用.htaccess支持

默认情况下,Apache可能未启用对.htaccess文件的支持。此时,需在主配置文件中设置AllowOverride指令为All或指定允许的指令类型,以启用.htaccess功能:9.6综合案例:配置虚拟主机9.6.1配置IP型虚拟主机9.6.2配置域名型虚拟主机9.6.3配置端口型虚拟主机虚拟主机技术是Web服务器部署中极为常见的需求,它通过在一台物理服务器上托管多个独立的Web站点,显著提升了硬件资源的利用率,降低了运维成本。Apache服务器支持基于IP地址、域名和端口三种虚拟主机配置方式,具体说明如下。①IP型虚拟主机:每个站点绑定独立的IP地址,需服务器配置多个网卡或IP别名。②

域名型虚拟主机:基于HTTP/1.1协议支持,通过域名解析实现站点隔离,需服务器监听同一IP的不同域名请求。③

端口型虚拟主机:通过监听不同端口来区分站点,用户需在URL中显式指定端口号,如:8080。虚拟主机配置需满足以下要求。①

隔离性:各站点应拥有独立的配置,包括根目录、日志路径、访问权限等,确保站点间互不干扰。②

扩展性:支持动态添加或删除站点,无须重启服务即可生效。③

兼容性:适配不同应用场景,如开发测试与生产环境,保证配置的通用性和可移植性。9.6综合案例:配置虚拟主机本案例要求服务器在同一台主机上托管两个独立站点,分别绑定IP地址29和30,配置步骤如下。#修改主IP为静态地址(可选,根据需求选择是否覆盖动态配置)[root@localhost~]#nmcliconnectionmodify"ens160"\ipv4.addresses29/24\ipv4.gateway\#根据实际网络填写网关ipv4.dns","\#可选:指定DNSipv4.methodmanual#强制使用静态IP(如需覆盖DHCP)#添加第二个IP地址(别名)[root@localhost~]#nmcliconnectionmodify"ens160"+ipv4.addresses30/24#重启网络服务,使配置生效[root@localhost~]#systemctlrestartNetworkManager9.6综合案例:配置虚拟主机9.6.1配置IP型虚拟主机2.验证IP配置

执行如下命令,查看ens160的详细信息:[root@localhost~]#ipashowens1601.分配IP地址别名

为ens160添加两个IP地址(一个主IP和一个别名):2:ens160:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscmqstateUPgroupdefaultqlen1000link/ether00:0c:29:d9:85:c7brdff:ff:ff:ff:ff:ffaltnameenp3s0inet29/24brd55scopeglobalnoprefixrouteens160valid_lftforeverpreferred_lftforeverinet30/24brd55scopeglobalsecondarynoprefixrouteens160②

如显示以下信息,则说明IP地址已正确添加:[root@localhost~]#vi/etc/httpd/conf.d/site1.conf<VirtualHost29:80>ServerNameDocumentRoot/var/www/site1ErrorLog/var/log/httpd/site1_error.logCustomLog/var/log/httpd/site1_access.logcombined

<Directory/var/www/site1>Options-Indexes+FollowSymLinksAllowOverrideAllRequireallgranted</Directory></VirtualHost>9.6综合案例:配置虚拟主机9.6.1配置IP型虚拟主机②

为站点2(30)创建配置文件/etc/httpd/conf.d/site2.conf,内容如下:3.配置Apache虚拟主机

为站点1(29)创建配置文件/etc/httpd/conf.d/site1.conf,内容如下:[root@localhost~]#vi/etc/httpd/conf.d/site2.conf<VirtualHost30:80>ServerNameDocumentRoot/var/www/site2ErrorLog/var/log/httpd/site2_error.logCustomLog/var/log/httpd/site2_access.logcombined

<Directory/var/www/site2>Options-Indexes+FollowSymLinksAllowOverrideAllRequireallgranted</Directory></VirtualHost>[root@localhost~]#mkdir-p/var/www/site1/var/www/site2[root@localhost~]#chown-Rapache:apache/var/www/site1/var/www/site2[root@localhost~]#echo"<h1>Site1on29</h1>">/var/www/site1/index.html[root@localhost~]#echo"<h1>Site2on30</h1>">/var/www/site2/index.html[root@localhost~]#chmod-R755/var/www/site1/var/www/site29.6综合案例:配置虚拟主机9.6.1配置IP型虚拟主机③

验证配置并重启服务,以使服务生效,命令如下:[root@localhost~]#apachectlconfigtest#检查语法SyntaxOK[root@localhost~]#systemctlrestarthttpd②

为两个站点分别创建网站目录并设置权限,命令如下:[root@localhost~]#curl29<h1>Site1on29</h1>[root@localhost~]#curl30<h1>Site2on30</h1>4.访问测试

使用curl命令分别访问两个站点的IP地址,验证配置是否生效:[root@localhost~]#vi/etc/httpd/conf.d/site1.conf<VirtualHost*:80>ServerNameDocumentRoot/var/www/site1ErrorLog/var/log/httpd/site1_error.logCustomLog/var/log/httpd/site1_access.logcombined

<Directory/var/www/site1>Options-Indexes+FollowSymLinksAllowOverrideAllRequireallgranted</Directory></VirtualHost>9.6综合案例:配置虚拟主机9.6.2配置域名型虚拟主机②

为站点2()创建配置文件/etc/httpd/conf.d/site2.conf,内容如下:①

为站点1()创建配置文件/etc/httpd/conf.d/site1.conf,内容如下:[root@localhost~]#vi/etc/httpd/conf.d/site1.conf<VirtualHost*:80>ServerNameDocumentRoot/var/www/site2ErrorLog/var/log/httpd/site2_error.logCustomLog/var/log/httpd/site2_access.logcombined

<Directory/var/www/site2>Options-Indexes+FollowSymLinksAllowOverrideAllRequireallgranted</Directory></VirtualHost>[root@localhost~]#httpd-M|grep-E'rewrite|vhost_alias'rewrite_module(shared)vhost_alias_module(shared)1.确保Apache支持域名型虚拟主机

默认情况下,Apache是支持域名型虚拟主机的。检查Apache的mod_rewrite和mod_vhost_alias模块已启用:2.配置域名型虚拟主机假设有和两个域名,需分别绑定到不同的网站目录。[root@localhost~]#vi/etc/hosts29299.6综合案例:配置虚拟主机9.6.2配置域名型虚拟主机mkdir-p/var/www/site1/var/www/site2chown-Rapache:apache/var/www/site1/var/www/site2chmod-R755/var/www/site1/var/www/site2③

为两个站点创建网站目录并设置权限3.配置测试环境

在测试环境中,要实现域名解析,需在客户端或服务器本地的hosts文件中添加以下内容:[root@localhost~]#systemctlrestarthttpd②

重启Apache服务,以使配置生效:[root@localhost~]#curl-IHTTP/1.1200OKDate:Sat,10May202515:41:41GMTServer:Apache/2.4.62(RockyLinux)Last-Modified:Sat,10May202515:11:20GMTETag:"23-634c97ec9eab3"Accept-Ranges:bytesContent-Length:35Content-Type:text/html;charset=UTF-8[root@localhost~]#curl-IHTTP/1.1200OKDate:Sat,10May202515:41:53GMTServer:Apache/2.4.62(RockyLinux)Last-Modified:Sat,10May202515:11:20GMTETag:"23-634c97ec9f283"Accept-Ranges:bytesContent-Length:35Content-Type:text/html;charset=UTF-89.6综合案例:配置虚拟主机9.6.2配置域名型虚拟主机4.验证配置

检查Apache的配置语法,命令如下:返回状态码200,表示对站点

的HTTPHEAD请求已成功处理。[root@localhost~]#vi/etc/httpd/conf.d/site1.conf<VirtualHost29:80>ServerName29DocumentRoot/var/www/site1/public_htmlErrorLog/var/www/site1/logs/error.logCustomLog/var/www/site1/logs/access.logcombined<Directory/var/www/site1/public_html>Options-Indexes+FollowSymLinksAllowOverrideAllRequireallgranted</Directory></VirtualHost>9.6综合案例:配置虚拟主机9.6.3配置端口型虚拟主机②

为站点2(监听8080端口)创建配置文件/etc/httpd/conf.d/site2.conf,内容如下:①

为站点1(监听80端口)创建配置文件/etc/httpd/conf.d/site1.conf,内容如下:[root@localhost~]#vi/etc/httpd/conf.d/site2.conf<VirtualHost29:8080>ServerName29DocumentRoot/var/www/site2/public_htmlErrorLog/var/www/site2/logs/error.logCustomLog/var/www/site2/logs/access.logcombined<Directory/var/www/site2/public_html>Options-Indexes+FollowSymLinksAllowOverrideAllRequireallgranted</Directory></VirtualHost>端口型虚拟主机允许在同一IP地址或域名下,通过监听不同的端口号来托管多个网站。现需要在同一IP地址(如29)或域名(如

)下,通过不同端口提供多个站点的服务,即在端口80上部署站点1,在端口8080上部署站点2,具体步骤如下。1.创建虚拟主机配置文件

[root@localhost~]#vi/etc/httpd/conf/httpd.conf#找到或添加以下行:Listen80Listen80809.6综合案例:配置虚拟主机9.6.3配置端口型虚拟主机[root@localhost~]#mkdir-p/var/www/site1/var/www/site2[root@localhost~]#chown-Rapache:apache/var/www/site1/var/www/site2[root@localhost~]#chmod-R755/var/www/site1/var/www/site22.创建网站目录并设置权限3.配置Apache服务

编辑Apache主配置文件,确保监听所需端口(80和8080):[root@localhost~]#vi/etc/hosts2929②

在测试环境中编辑/etc/hosts文件(Linux/macOS)或C:\Windows\System32\drivers\etc\hosts文件(Windows),添加以下内容:systemctlrestarthttpd③

重启Apache服务,使配置生效:[root@localhost~]#curl-I29:80HTTP/1.1200OKDate:Sat,10May202516:39:43GMTServer:Apache/2.4.62(RockyLinux)Last-Modified:Sat,10May202516:31:24GMTETag:"1a-634ca9d1d8abe"Accept-Ranges:bytesContent-Length:26Content-Type:text/html;charset=UTF-8[root@localhost~]#curl-I29:8080HTTP/1.1200OKDate:Sat,10May202516:39:35GMTServer:Apache/2.4.62(RockyLinux)Last-Modified:Sat,10May202516:31:24GMTETag:"1c-634ca9d1de0ae"Accept-Ranges:bytesContent-Length:28Content-Type:text/html;charset=UTF-89.6综合案例:配置虚拟主机9.6.3配置端口型虚拟主机[root@localhost~]#apachectlconfigtestSyntaxOK4.验证配置

检查Apache的配置语法,命令如下:②

使用curl命令分别访问两个站点,验证配置是否生效:9.7Nginx服务器的安装与配置9.7.1Nginx服务器简介9.7.2安装Nginx服务器9.7.3配置Nginx服务器9.7Nginx服务器的安装与配置Nginx是由俄罗斯软件工程师伊戈尔·西索夫(IgorSysoev)开发的高性能HTTP和反向代理Web服务器,同时也提供了IMAP(InternetMessageAccessProtocol,互联网信息访问协议)/POP3(PostOfficeProtocolVersion3,邮局协议第3版)/SMTP(SimpleMailTransferProtocol,简单邮件传输协议)代理服务功能。其设计初衷是为了解决C10K问题,即实现单服务器高效处理上万个并发连接)。因此,Nginx在处理高并发连接时表现卓越,能够以较少的系统资源消耗实现更高的吞吐量。Nginx的核心架构基于事件驱动和非阻塞I/O模型,这使得它能够高效地处理大量并发请求。与传统的多进程或多线程服务器模型不同,Nginx采用单线程异步处理方式,通过事件通知机制来响应多个客户端连接,避免了频繁的进程或线程切换开销,从而显著提高了服务器的性能和响应速度。此外,Nginx还具备丰富的功能模块,如反向代理、负载均衡、静态资源缓存、SSL/TLS终端、URL重写等,这些功能模块可以根据实际需求进行灵活配置和扩展,满足不同规模和复杂度的Web应用场景。9.7.1Nginx服务器简介9.7Nginx服务器的安装与配置9.7.2安装Nginx服务器dnfinstall-yepel-releasednfupdate-y1.更新系统软件包2.安装EPEL仓库3.安装Nginxsystemctlstartnginxsystemctlenablenginx4.启动并启用Nginx服务dnfinstall-ynginxsystemctlstatusnginx5.验证Nginx安装9.7Nginx服务器的安装与配置9.7.3配置Nginx服务器Nginx的配置文件通常位于/etc/nginx/目录下,主要配置文件为nginx.conf。此外,Nginx还支持通过虚拟主机的方式为不同的网站或应用配置独立的配置文件,这些虚拟主机配置文件通常存放在/etc/nginx/conf.d/目录下。下面介绍Nginx服务器的基本配置方法。1.主配置文件

nginx.conf是Nginx的主配置文件,其中包含全局配置参数、事件模块配置、HTTP模块配置等核心配置内容。下面是一个简化的nginx.conf文件示例:usernginx;#运行Nginx的用户和用户组worker_processesauto;#工作进程数,auto表示根据CPU核心数进行自动设置error_log/var/log/nginx/error.logwarn;#错误日志文件路径及日志级别pid/var/run/nginx.pid;#存放Nginx主进程ID的文件路径events{worker_connections1024;#每个工作进程能够同时处理的最大连接数}

http{include/etc/nginx/mime.types;#引入MIME类型的映射文件default_typeapplication/octet-stream;#默认MIME类型

log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for"';

access_log/var/log/nginx/access.logmain;#访问日志文件路径,并使用main格式进行记录

sendfileon;#启用高效文件传输模式#tcp_nopushon;#在sendfile开启的情况下,提高网络包的传输效率tcp_nodelayon;#防止网络阻塞keepalive_timeout65;#设置长连接超时时间,单位为stypes_hash_max_size2048;#设置类型哈希表的最大大小

include/etc/nginx/conf.d/*.conf;#引入以.conf结尾的虚拟主机配置文件}9.7Nginx服务器的安装与配置9.7.3配置Nginx服务器2.虚拟主机配置

虚拟主机配置文件通常存放在/etc/nginx/conf.d/目录下,每个虚拟主机对应一个独立的.conf文件。下面是一个简单的虚拟主机配置文件示例,用于配置一个名为

的网站:server{listen80;#监听80端口(HTTP)server_name;#服务器名称(域名)

#日志配置access_log/var/log/nginx/.access.logmain;error_log/var/log/nginx/.error.logwarn;

#根目录配置,指定网站文件的存放路径root/usr/shar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论