Apache部署步骤与安全优化
haoteby 2025-05-15 17:56 26 浏览
系统环境配置
安 装 Apache HTTP Server 2.2
下载最新版本即可,安 装 tomcat-connector/jk for HTTP 2.2,具体安装步骤略过。
软件环境配置
- Apache
基础配置
--设置相对根目录的路径,通常是指存放配置文件和日志文件的地方。
ServerRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2"
--设置监听端口为 80
Listen 80
--设置网络管理员的Email,当客户端服务器发生错误时,服务器通常会向客户端返回错误提示
页面,为了方便解决错误,这个网页中通常有管理员的 Email 地址,可以通过电话使用 ServerAdmin 语句来设置管理员的EMail 地址
ServerAdmin gaoyu@21stc.com.cn
--Apache 默认服务器主目录路径
DocumentRoot "D:/tomcat-7-dsp/webapps/dsp"
--设置服务器主机名称 (如果有域名可以填入域名,没有域名则可填入服务器IP 地址)
#ServerName localhost:80
--设置目录权限(<Directory "目录路径">此次写设置目录权限的语句</Directory>)
<Directory " D:/tomcat-7-dsp/webapps/dsp "> Options FollowSymLinks
AllowOverride None Order allow,deny Allow from all
</Directory>
注:在上面这段目录属性配置中,主要有下面的选项:
Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:
ExecCGI : 在 该 目 录 下 允 许 执 行 CGI 脚 本 。 Follow Sym Links: 在该目录下允许文件系统使用符号连接。
Indexes: 当用户访问该目录时,如果用户找不到 DirectoryIndex 指定的主页文件(例如 index.html),则返回该目录下的文件列表给用户。
Sym LinksIfOwner Match : 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
其它可用值和含义请参阅:
AllowOverride :允许存在于.htaccess 文件中的指令类型(.htaccess 文件名是可以改变的, 其文件名由 AccessFileName 指令决定):
None: 当 AllowOverride 被设置为 None 时。不搜索该目录下的.htaccess 文件(可以减小服务器开销)。
All: 在.htaccess 文件中可以使用所有的指令。
其他的可用值及含义请参看:
Order :控制在访问时 Allow 和 Deny 两个访问规则哪个更优先: Allow :允许访问的主机列表(可用域名或子网,例如:Allow from 192.168.0.0/16)。Deny :拒绝访问的主机列表。
--主页文件的设置(本例将主页文件设置为:index.html,index.htm 和index.php)
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>
配置全局错误页面
#ErrorDocument 500 "The server made a boo boo." ErrorDocument 404 /error/index.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://localhost/subscription_info.html
- (C) Tomcat
如果单独使用Tomcat 做JSP 服务器,在工作效率上会存在问题,Tomcat 对于静态的html 文件、图片文件等的解析效率上不如 Apache,并且所能承受的最大并发连接数也有一定的限制。
在测试中,当并发连接较多时,Tomcat 就会处于“僵死”状态,对后继的请求连接失去响应。所以现在提出一个“整合”解决方案:将 HTML 与 JSP 的功能部分进行明确分工,让Tomcat 只处理 JSP 部分,其它的由 Apache 处理。Apache 与 Tomcat 各司其职,那么服务器的整体效率就能够得到提升。
Tomcat 服务器通过 Connector 连接器组件与客户程序建立连接,Connector 组件负责接收客户的请求,以及把 Tomcat 服务器的响应结果发送给客户。
默认情况下,Tomcat 在 server.xml 中间配置了两种连接器:
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxThreads="150"
minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
第一个连接器监听器 8080 端口,负责建立 HTTP 连接。在通过浏览器访问 Tomcat 服务器的 Web 应用时,使用的就是这个连接器。
第二个连接器监听器 8009 端口,负责和其他的 HTTP 服务器建立连接。Tomcat 与其他HTTP 服务器集成时,就需要用到这个连接器。Web 客户访问 Tomcat 服务器上 JSP 组件的两种方式如图:
快速配置 JK 连接器连接 APACHE 和 Tomcat 的步骤:
配置 workers.properties
这是 JK 连接器接口的命令配置文件一个实,workers.properties 使用 ajp13 协议连接Apache 和 Tomcat。
# Defining a worker named worker1 and of type ajp13 worker.list=dsp,datashare
# Set properties for dsp worker.dsp.type=ajp13 worker.dsp.host=localhost worker.dsp.port=1009 worker.datashare.type=ajp13 worker.datashare.host=localhost worker.datashare.port=8009
配置 mod_jk.conf
#指出 mod_jk 模块工作所需要的工作文件 workers.properties 的位置JkWorkersFile conf/workers.properties
JkShmFile D:\logs\jk.shm # Where to put jk logs
JkLogFile D:\logs\mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel error
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" # JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 将所有 servlet 和 jsp 请求通过 ajp13 的协议送给 Tomcat,让 Tomcat 来处理JkMount /dsp/* dsp
JkMount /datashare/* datashare
配置插件
在"Apache 文件夹/conf/httpd.conf"文件最后添加如下配置LoadModule jk_module modules/mod_jk.so
Include conf/mod_jk.conf
配置站点(样例)
NameVirtualHost *:*
<VirtualHost *:80>
ServerName www.chinageoss.org
ErrorDocument 500 /error/index.html
ErrorDocument 404 /error/index.html
ErrorDocument 403 /error/index.html
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F]
#共享平台网站应用
<Directory "D:\tomcat-7-dsp\webapps\dsp"> AllowOverride None
Options None Order allow,deny Allow from all
</Directory>
Alias /dsp "D:\tomcat-7-dsp\webapps\dsp"
JkMount /dsp/* dsp
#共享平台网站检索应用
<Directory "D:\tomcat-7-datashare\webapps\datashare"> AllowOverride None
Options None Order allow,deny Allow from all
</Directory>
Alias /datashare "D:\tomcat-7-datashare\webapps\datashare"
JkMount /datashare/* datashare
#网站错误
<Directory "D:\tomcat-7-dsp\webapps\404error"> AllowOverride None
Options None
Order allow,deny Allow from all
</Directory>
Alias /error "D:\tomcat-7-dsp\webapps\404error"
#共享平台网站卫星遥感数据集编目快视图
<Directory "F:\dsp\preview"> AllowOverride None Options None
Order allow,deny Allow from all
</Directory>
Alias /preview "F:\dsp\preview"
</VirtualHost>
s 安全配置与优化
启用 gzip 功能
从服务端优化来说,通过对服务端做压缩配置可以大大减小文本文件的体积,从而使加载 文本的速度成倍的加快。目前比较通用的压缩方法是启用 gzip 压缩。它会把浏览器请求的页面, 以及页面中引用的静态资源以压缩包的形式发送到客户端,然后在客户端完成解压和拼装.具体是 实现不用关心,我们只要将 GZip 启用就好.下图是使用相关工具检测没有开启网页压缩的效果。如下步骤我们就来具体开启基于 apache 的 GZip 压缩支持。
- 找到并打开 apache/conf 目录中的 httpd.conf 文件;httpd.conf 中打开 deflate_Module 和 headers_Module 模块,具体做法为将 如下两句前面的#去掉:
LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so
- 在 httpd.conf 文件底部加入如下代码配置需要压缩的文件:
<IfModule deflate_module> SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary AddOutputFilterByType DEFLATE text/*
AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
</IfModule>
- 重启 apache 服务端 使用工具重新检测是否开启 gzip 压缩。使用 Fiddler2:
使用在线检测工具:
关闭 TraceEnable
黑客攻击网站前一般会搜集网站的相关信息,以查找出系统可能存在的漏洞,比如系统版 本和名称,网站服务器版本和名称,对外开放端口,确认网址 IP 地址和 DNS 信息,WEB 资料收集等。
对于隐藏网站服务器版本信息和网页版本信息,之前的文章隐藏 apache 版本号和 php 版本号有进行说明。
而 TraceEnable 选项是默认开启,用途是除错,在网站漏洞检测中是一个警告漏洞,建议关闭。
- 2.0.55 以上版本的 Apache 服务器,可以在 httpd.conf 的尾部添加: TraceEnable off如果你使用的是 Apache:
- 确认 rewrite 模块激活(httpd.conf,下面一行前面没有#): LoadModule rewrite_module modules/mod_rewrite.so
- 在各虚拟主机的配置文件里添加如下语句:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F]
注:可以在 httpd.conf 里搜索 VirtualHost 确定虚拟主机的配置文件。
隐藏 apache 版本号
- 修改 httpd.conf 文件的下面配置为: ServerTokens ProductOnly ServerSignature Off重启 Apache,现在 http 头里面只看到: Server: Apache
相关推荐
- 在线抓取网页源码(爬虫获取网页源代码)
-
经验分享:如何解决爬虫抓取时的网页源码不全问题爬虫是一种常用的数据采集工具,可以帮助我们快速获取互联网上的各种信息。然而,很多人在使用爬虫时都会遇到一个普遍的问题,那就是爬虫抓取的网页源码总是不完整。...
- 40个图源二维码分享及使用方法(图片二维码生成器在线制作二维码)
-
我们曾在《35个图源二维码分享及使用方法》一文中,为你分享了35个图源二维码。...
- 45个图源二维码分享及使用方法(图源是啥)
-
我们曾在《40个图源二维码分享及使用方法》一文中,为你分享了40个图源二维码。...
- 电子书管理软件Calibre 8.0.1发布:改善支持Kobo,优化新闻源等
-
IT之家3月22日消息,Calibre是一款免费、开源的电子书管理工具,支持整理、转换和阅读多种格式的电子书。最新发布的8.0.1版本带来了多项功能改进和问题修复,进一步提升了用户体验。...
- 软网推荐:一键生成不同网站RSS订阅源
-
为了关注自己喜欢的网站内容,以前最常见的方法是订阅RSS源,这样在内容更新的时候就会自动进行推送。但由于RSS现在已经不是主流的阅读方式,所以并不是所有的网站都提供RSS订阅,这时我们就得另辟蹊径了。...
- 消费曝光台|29.9元充100元话费?到手是15张满减优惠券
-
近日,山西大同的王先生向澎湃质量报告投诉平台反映,他在使用手机时收到一条弹窗广告,称他获得了“29.9元充值100元话费券”。王先生充值并下载了APP潮物圈后才发现,100元的话费实际上是15张5元和...
- 玩Kodi的IPTV插件必备技能——直播源地址抓包教程
-
准备工具:谷歌浏览器(Google)或者其他浏览器(不常用的或再安装一个浏览器)Potplayerm3u8直播源文件或者Gitee个人工作台...
- i.MX6加载Ubuntu镜像的教程(ubuntu添加镜像源)
-
基于迅为IMX6开发板安装好虚拟机之后,用户就可以加载Ubuntu12.04.2镜像。用户可以在网盘中下载“编译好的镜像”,该镜像已经安装好了编译Android4.4.2所需要的大部分软件...
- 嵌入式软件开发人员有必要学习系统移植的知识吗?ppt见文末
-
《从零开始学ARM》的配套视频说明...
- ARM体系结构(10)-GPIO LED闪烁汇编代码实现(基于tiny4412)
-
接上一篇,我将介绍如何使用GPIO引脚GPM4_1来控制Tiny4412开发板上的LED2闪烁。本文将从原理、汇编代码、Makefile实现、程序编译和烧写等多个方面进行介绍,以便读者能够全面了解如何...
- 物联网学习路线图(物联网必学课程)
-
物联网技术近几年在我国获得了很好的发展,从目前的发展趋势来看,未来物联网发展前景一片大好。由此学习的人员也是越来越多,但是在学习物联网时很多人都容易忽略这样一件事——从未准备一份详尽的物联网学习路线图...
- 网卡DM9000裸机驱动开发详解(pro1000网卡驱动)
-
一、网卡1.概念网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第2层。它使得用户可以通过电缆或无线相互连接。...
- Win10高分屏更改DPI后字体模糊?试试这个小工具
-
如果你使用的是大尺寸显示屏,拥有1920x1080或更大分辨率,可能你会选择设置一个较高的DPI缩放级别,比如125%或更高。这样屏幕上的内容看起来会更大一些,更容易阅读。在WindowsVista...
- 微软Windows竟内嵌Linux?这样玩挺有趣
-
在Windows上运行Linux?这其实不是新鲜事,20年前,就有黑客这么干过。微软的开发者博客刚刚公布,下一个Windows10版本,不仅自带Linux内核,而且还会通过Win...
- 上厕所别带手机!9 个错误动作增加你感染病毒的风险
-
随着复工的正式开始,很多小伙伴开始担心如何在上班过程中更好地保护自己。口罩准备好了,免洗洗手液准备好了,是不是就万无一失了?还真不是!你摸完电梯按钮的手,或者扶过地铁栏杆的手,不经意间揉一下眼睛、摸一...