Linux下Apache部署
1.建用户# groupadd apache # useradd apache -g apache # passwd apache # su - apache
2.下载openssl-1.0.2g.tar.gz到用户目录~(/home/apache/)
#tar -zxvf openssl-1.0.2g.tar.gz
#cd openssl-1.0.2g
#mkdir /opt/openssl
#./config --prefix=/opt/openssl
#make && make install
3.下载httpd-2.2.22.tar.gz到用户目录~(/home/apache/)
#tar -zxvf httpd-2.2.22.tar.gz
#cd ../httpd-2.2.22
#export LDFLAGS=-ldl //执行下面命令前最好加上这句话,否则可能报错: configure: error: ... Error, SSL/TLS libraries were missing or unusable
#./configure --prefix=/opt/httpd --enable-so--enable-info--enable-headers --enable-mods-shared=all --enable-ssl=static --with-ssl=/opt/openssl
指定模块:./configure --prefix=/opt/httpd --enable-so--enable-info--enable-headers --enable-mods-shared="proxy proxy_http proxy_connect" --enable-ssl=static --with-ssl=/opt/openssl --enable-rewrite --enable-speling --enable-forward
#make //编译apache
#make install //安装apache
或者编译并且安装apache
#make && make install
注意,非root用户1024以下端口不可用,需要修改默认80端口为其他可用端口
vi /opt/httpd/conf/httpd.conf
4.查看代理模块及安装:
./apachectl -M|grep proxy
如果没有任何模块,安装步骤:(注意:proxy_util.c是基础模块,必须先安装。如果出错,每个命令后都加上)
cd /home/apache/httpd-2.2.22/modules/proxy
/opt/httpd/bin/apxs -c -i -a mod_proxy.c proxy_util.c
/opt/httpd/bin/apxs -c -i -a mod_proxy_http.c
/opt/httpd/bin/apxs -c -i -a mod_proxy_ftp.c
/opt/httpd/bin/apxs -c -i -a mod_proxy_connect.c
/opt/httpd/bin/apxs -c -i -a mod_proxy_balancer.c
/opt/httpd/bin/apxs -c -i -a mod_proxy_scgi.c
/opt/httpd/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c
httpd.conf代理配置,举例:
#开启代理服务,客户端可指定当前IP及端口作为代理配置
ProxyRequests On
#代理指向如果是https协议,必须加上该属性,否则转发错误
SSLProxyEngine On
ProxyPass/https/https://url/
ProxyPassReverse/https/https://url/
ProxyPass/http/http://url/
ProxyPassReverse/http/http://url/
Listen 8081
<IfModule mod_proxy.c>
<VirtualHost *:8081>
ProxyRequests On
#配置允许访问的目的地址以及可使用代理的来源地址
<Proxy *>
Order deny,allow
Allow from all
#Allow from IP1 IP2...
</Proxy>
</VirtualHost>
</IfModule>
SSL加虚拟机配置
Listen 9443
NameVirtualHost *:9443
<VirtualHost *:9443>
#ServerName domain:9443
DocumentRoot htdocs
DirectoryIndex index.htm
#SSLEngine on
#SSLVerifyClient require
SSLVerifyDepth10
#SSLCertificateFile conf/server.crt
#SSLCertificateKeyFile conf/server.key
#SSLCACertificateFile conf/CFCA_TEST_CS_CA.cer
#SSLCertificateChainFile conf/CFCA_TEST_OCA1.cer
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLOptions +StdEnvVars
#ProxyRequests On
#SSLProxyEngine On
#ProxyPass/http/http://url/
#ProxyPassReverse/http/http://url/
</VirtualHost>
如果具有root用户权限,可把apache加入到自动启动服务:
#chkconfig --list httpd //查看httpd服务是否已存在
#chkconfig httpd off //关闭系统自带了httpd的服务,如果存在httpd服务
#service httpd status //查看自带httpd服务状态
#/opt/httpd/bin/apachectl -k start //linux启动apache命令
#netstat -an|grep :80 //查看linux80端口是否开启
#ps -aux|grep httpd //linux下查看apache进程
#cd ../..
#cp /opt/httpd/bin/apachectl /etc/rc.d/init.d/apache //拷贝apache启动脚本
#vi /etc/rc.d/init.d/apache // 这里是编辑apache启动脚本
在开头的#!/bin/sh下面加上(未知作用)
#chkconfig: 23458515
#chkconfig --add apache //添加apache服务
#chkconfig --list apache //列出apache服务
#service apache stop //停止apache服务
#netstat -an|grep :80 //查看linux的80端口是否关闭
#ps -aux|grep httpd //查看是否存在httpd服务,若果之前自带httpd服务启动的话会导致新添加的apache服务启动失败
#service apache start //启动apache服务
打开服务器ip地址,看是否出现了It works!,如果出现的话,apache已经安装成功了
root用户下,Apache的启动、关闭、重启
启动命令:service httpd start
关闭命令:service httpd stop
重启命令:service httpd restart
状态查询:service httpd status
非root用户下,Apache的启动、关闭、重启
启动命令:/opt/httpd/bin/apachectl start
关闭命令:/opt/httpd/bin/apachectl stop
重启命令:/opt/httpd/bin/apachectl restart
状态查询:/opt/httpd/bin/apachectl status
页:
[1]