Apache的安装(含HTTPS)及基本调优 2017-03-12 23:55
1.安装篇
1.1Windows系统
Windows系统下的Apache,Apache2.2提供的有带openssl的msi程序。Apache2.4则直接解压(已包含ssl的module),修改httpd.conf中的路径即可使用。注意有好几处,建议搜索:/,查找到凡是路径相关的都修改为实际Apache放置的位置。需修改路径如下示意图(抽样举例):
相对来说Windows下的Apache安装较为简单。其他步骤不再一一呈现。
提醒以下几点小技巧:
1.Apache的安装路径最好不要包含:中文、空格,将对后续的配置使用带来极大困扰。
2.Apache进行配置调整时,最好在命令行用Apache的bin目录下的httpd.exe启动,以确认无错误的参数配置(如:端口冲突、参数名书写错误、参数重复、路径错误等),导致Apache无法启动。在确认可以正确启动后,再用Windows服务项启动Apache。
1.2Linux系统
写在开始,由于Apache的安装make时都涉及到gcc,因此Linux系统建议安装时勾选上gcc相关项。若操作系统安装时未包含gcc,那么建议使用操作系统的安装盘,对gcc进行yum安装,以减少处理gcc的依赖。
以下篇章,我们在gcc已正确安装的基础上进行。
1.2.1Apache2.2
在安装Apache前,需操作系统已安装openssl,以下说明openssl的安装示例(前提:操作系统未安装openssl,若操作系统已安装openssl,则使用系统自带的即可):
以openssl介质(openssl-0.9.8r.tar.gz)在/home/apacheinstall,预安装在/home/openssl为例,详细步骤参考如下,依次在终端执行以下命令:
cd /home/apacheinstall tar –zvxf openssl-0.9.8r.tar.gz cd openssl-0.9.8r ./config --prefix=/home/openssl make make install |
若以上无error报错,则执行完毕后openssl安装完成。
接下来,进行Apache2.2的安装。以Apache介质(httpd-2.2.17.tar.gz)在/home/apacheinstall,预安装在/home/apache为例,详细步骤参考如下,依次在终端执行以下命令:
cd /home/apacheinstall tar -zvxf httpd-2.2.17.tar.gz cd httpd-2.2.17 ./configure --prefix=/home/apache \ --enable-so \ --enable-ssl --with-ssl=/home/openssl/ssl make make install |
若以上无error报错,则执行完毕后apache安装完成。
1.2.2Apache2.4
Apache2.4在Linux下安装较为复杂,除gcc外,还需要依赖pcre、apr、apr-util的安装。
以下示例为pcre、apr、apr-util的安装示例。
安装pcre。以pcre在/home/pcre-8.37目录,安装至/usr/local/pcre为例,执行以下命令进行pcre的安装:
cd /home/pcre-8.37 ./configure --prefix=/usr/local/pcre make make install |
安装apr。以apr在/home/apr1.5.2目录,安装至/usr/local/apr为例,执行以下命令进行apr的安装:
cd /home/apr1.5.2 ./configure --prefix=/usr/local/apr make make install |
安装apr-util。以apr-util在/home/apr-util1.5.4目录,安装至/usr/local/apr-util为例,执行以下命令进行apr-util的安装:
cd /home/apr-util1.5.4 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make make install |
接下来,安装Apache2.4。以Apache2.4在/home/httpd-2.4.23目录为例,执行以下命令进行Apache2.4的安装(注意红色标注的为一条命令):
cd /home/httpd-2.4.23 ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --with-ssl=/usr/local/openssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre make make install cp /usr/local/apache/bin/apachectl /etc/init.d/httpd |
2.HTTPS配置篇
Apache安装后,如何进行HTTPS的启用?
2.1Apache2.2
修改httpd.conf(在Apache主目录的conf文件夹下)文件,在其中追加以下内容:
LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf |
2.2Apache2.4
修改httpd.conf(在Apache主目录的conf文件夹下)文件,解除其中以下标红模块的#号注释(有的模块可能未注释),并追加httpd-ssl.conf(Windows下注意,修改httpd-ssl.conf中的Apache 主目录)的引用:
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule log_config_module modules/mod_log_config.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf |
完成以上修改,Apache即开启了HTTPS功能,默认端口为443,可以在httpd-ssl.conf中进行调整。
修改conf/extra/http-ssl.conf文件中的证书名称:
Server.crt修改为oasvr.crt
Server.key修改为oasvr.key
并在httpd-ssl.conf文件最后添加如下内容
JkMount /* controller |
在 Apache/conf/ssl 目录中放置 CA 的.crt 、key key文件,注意名分别为:oasvr.crt、oasvr.key;
3.调优篇
Apache最常见的两个调优为:静态文件压缩、线程参数调整。
静态文件压缩:需要在httpd.conf中追加以下内容(红色标注为Apache2.4需增加内容,Apache2.2不需要追加):
LoadModule filter_module modules/mod_filter.so LoadModule deflate_module modules/mod_deflate.so AddOutputFilterByType DEFLATE text/html text/plain text/xml Include conf/mod_jk.conf |
线程参数调整,Apache2.2一般在httpd.conf中追加以下参数:
<IfModule mpm_winnt_module> ThreadsPerChild 150 MaxRequestsPerChild 1000 Win32DisableAcceptEx </IfModule> |
Apache2.4一般在httpd.conf中追加以下参数:
<IfModule mpm_winnt.c> ThreadsPerChild 150 MaxRequestsPerChild 1000 AcceptFilter http None AcceptFilter https None </IfModule> |
两个版本最重要的为,根据Apache的实际使用情况调整ThreadsPerChild、MaxRequestsPerChild的值。
其他的调优方向还有:去掉不使用的模块、防止dos攻击、调整连接超时等等方向。欢迎各位线下交流,本文不再深入讨论。