Apache的安装和使用、二级域名的配置和使用和Apache+tomcat整合

16 篇文章 0 订阅
1 篇文章 0 订阅

安装Apache

一、安装apache(http服务)

1. 从apache.org下载源码安装包

2. 解压缩

# tar zxf httpd-2.2.4.tar.gz

# cd httpd-2.2.4

3. 安装apache依赖包apr和apr-util,他们都在srclib目录中

3.1 安装apr

# cd srclib/apr

# ./configure --prefix=/usr/local/apr

# make

# make install

3.2 安装apr-util

# cd ../apr-util

# ./configure --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr

# make

# make install

4.安装httpd

# cd ../../

# ./configure --prefix=/usr/local/httpd  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so  --enable-rewrite

# make

# make install

 

--enable-so 支持DSO模式(动态模块加载方式)

--enable-rewrite 支持rewrite(地址重定向)

 

启动

#/usr/local/httpd/bin/apachectl start

停止

#/usr/local/httpd/ bin/apachectl stop

查看服务

#ps aux|grep httpd

 

启动apache遇到错误:httpd: Could not reliably determine the server's fully qualified domain name

# cd /usr/local/httpd/conf

编辑httpd.conf文件,搜索"#ServerName", 添加ServerName localhost:80
[root@server conf]# vim httpd.conf
#ServerName www.example.com:80
ServerName localhost:80

Apache默认发布路径在httpd.conf中可以找到:



等这些都装完后,打开浏览器,输入你安装apache所在的服务器地址,看起来像这个样子:

http://192.168.1.3/

 

如果页面显示如下:

It works!

恭喜你,apache安装成功了


也可以使用yum来安装,便捷快速-_- 


注意:默认防火墙是开启禁止80端口访问的,要开放80端口或者关闭防火墙。

也可启用80端口

iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart

也可以再<Directory /> 节点发布项目 比如:

<Directory "/var/www/htm/test/WebContent">


Httpd配置:

 

#vi /usr/local/httpd-2.2.9/conf/httpd.conf

 

限制IP访问:找到发布目录信息节点:

<Directory"/usr/local/httpd-2.2.9/htdocs">

    #

    # Possiblevalues for the Options directive are "None", "All",

    # or anycombination of:

    #   IndexesIncludes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

    #

    # Note that"MultiViews" must be named *explicitly* --- "Options All"

    # doesn't giveit to you.

    #

    # The Optionsdirective is both complicated and important.  Please see

    #http://httpd.apache.org/docs/2.2/mod/core.html#options

    # for moreinformation.

    #

    Options IndexesFollowSymLinks

    # AllowOverridecontrols what directives may be placed in .htaccess files.

    # It can be"All", "None", or any combination of the keywords:

    #   OptionsFileInfo AuthConfig Limit

    AllowOverrideNone

    #

    # Controls whocan get stuff from this server.

Order allow,deny

默认不限制IP访问[all]

#Allow from all

只允许0.200.151 二台服务器访问该Web服务

Allow from 192.168.0.20 192.168.0.151

</Directory>



参考:http://man.ddvip.com/soft/apache2.0/ 

 

注意:安装好httpd不是系统服务,不可以通过service httpd status来查看和启动,需要把httpd服务添加进系统服务:将启动脚本放置在/etc/init.d下,可以参考该目录下的其他启动脚本实现。

也可以简单的实现:

# cp /usr/local/httpd/bin/apachectl  /etc/rc.d/init.d/httpd

然后 vi /etc/rc.d/init.d/httpd 添加(# !/bin/sh下面)

# chkconfig: 2345 50 90

# description: Activates/Deactivates Apache Web Server
 保存退出

最后,运行chkconfig把Apache添加到系统的启动服务组里面:

# chkconfig --add httpd

# chkconfig httpd on
 然后再service httpd start|stop


apache2  二级域名设置(此设置为多个能被Apache解析的服务,如php)


1.要拥有一个有泛域名解析的顶级域名,例如:abc.com
在dns服务上设置,域名服务商都提供此服务:
www.abc.com      指向服务器IP
abc.com          指向服务器IP
a.abc.com        指向服务器IP


设置完成后,分别
ping www.abc.com;ping abc.com;ping a.abc.com。
如果返回的ip地址都是服务器IP,说明域名解析已经成功。


打开http.conf文件的Include "conf/extra/httpd-vhosts.conf"

修改http.conf,或者修改httpd-vhosts.conf(建议修改此文件)文件修改内容如下:
NameVirtualHost *:80
<VirtualHost *:80>
  ServerAdmin admin@abc.com
  DocumentRoot "C:\xampp\htdocs\www"
  ServerName abc.com
  ServerAlias www.abc.com
  ErrorLog "C:\xampp\apache\logs\abc.localhost-error.log"
  CustomLog "C:\xampp\apache\logs\abc.localhost.access.log" combined
</VirtualHost>


<VirtualHost *:80>
  ServerAdmin admin@abc.com
  DocumentRoot "C:\xampp\htdocs\a"
  ServerName a.abc.com
  ErrorLog "C:\xampp\apache\logs\a.abc.localhost-error.log"
  CustomLog "C:\xampp\apache\logs\a.abc.localhost.access.log" combined
</VirtualHost>


第一段是www.abc.com
第一段是a.abc.com
各个参数含义说明
ServerAdmin  管理员邮箱
DocumentRoot 所需指向路径
ServerName   域名名称
ServerAlias  域名别名 可要可不要
ErrorLog     错误日志
CustomLog    访问日志


Apache和tomcat的区别:

tomcat是一个应用(Java)服务器, 它只是一个servlet(jsp也翻译成servlet)的容器, 可以解析html但效率远没有apache高; apache(httpd)是一个静态web服务器,就如同windows平台的IIS,在加载一些模块后可以解析phpperl等脚本apache, 可以认为是apache的扩展,但是可以独立于apache运行。 换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。

 

一般使用Apache + Tomcat的话,Apache只是作为一个转发,对JSP的处理是由Tomcat来处理的。

Apache是Web服务器,Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

Apache是用来提供服务的,以及相关配置的(例如虚拟主机、URL转发等等)

Tomcat是Apache组织在符合JavaEE的JSP、Servlet标准下开发的一个JSP服务器.

整合的好处:

◆如果客户端请求的是静态页面,则只需要Apache服务器响应请求。

◆如果客户端请求动态页面,则是Tomcat服务器响应请求。

◆因为JSP是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。

 


 Apache+tomcat整合,不同项目使用子域名来访问

安装 Tomcat Connectors(mod_jk)

下载地址:http://tomcat.apache.org/download-connectors.cgi

建议下载 1.2 最新稳定版

安装过程如下:

1
2
3
4
5
6
tar zxvf tomcat-connectors-1.2.40-src.tar.gz
cd tomcat-connectors-1.2.40-src/
cd native/
./configure --with-apxs=/usr/local/httpd/bin/apxs
make
make install

在 configure 时,需指定 apxs 的路径

安装完毕后,将在 httpd的 modules 目录下生成一份 mod_jk.so 文件

修改 httpd.conf 文件

引入mod_js.so文件:LoadModule jk_module modules/mod_jk.so

开启虚拟机配置

Include conf/extra/httpd-vhosts.conf

添加 JK 配置
Include conf/extra/httpd-jk.conf

配置 httpd-jk.conf 文件
JkWorkersFile /usr/local/httpd/conf/workers.properties
JkLogFile /usr/local/httpd/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
#ServerAdmin localhost

配置 workers.properties 文件

#workers.tomcat_home=/home/apache-tomcat-cms
#workers.java_home=/java/jdk1.7.0_25
worker.list=tomcat-cms
worker.tomcat-cms.type=ajp13
worker.tomcat-cms.host=localhost
worker.tomcat-cms.port=8009

 配置 httpd-vhosts.conf 文件

NameVirtualHost *:80
<VirtualHost *:80>
   ServerAdmin gang.shen@yunvoc.com
    DocumentRoot "/usr/local/httpd/htdocs"
    ServerName app.yunvoc.com
    ErrorLog "logs/app.yunvoc.com-error_log"
    CustomLog "logs/app.yunvoc.com-access_log" common
	<Directory "/usr/local/httpd/htdocs"> 
		Options FollowSymLinks 
		AllowOverride None
		Order allow,deny
		Allow from all
	</Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin gang.shen@yunvoc.com
    DocumentRoot "/home/yunvoc-cms"
    ServerName yunvoc.com
    ErrorLog "logs/yunvoc.com-error_log"
    CustomLog "logs/yunvoc.com-access_log" common
	
	<Directory "/home/yunvoc-cms">
		Options  FollowSymLinks
		AllowOverride None
		Order allow,deny
		Allow from all
    </Directory>
	JkMount /* tomcat-cms
</VirtualHost>

修改 <TOMCAT>/conf/server.xml 文件

  <Host name="trac.xxx.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">  
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
       <Context docBase="/home/xxx-cms" path="/" debug="0" reloadable="false" ></Context>
</Host>



以上是通过apache路由到tomcat,由tomcat自身解析映射的项目,以下tomcat集群负载均衡的实现方式:


cd   /home/httpd-2.2.27/modules/proxy

使用ApacheProxyPass来转发URL后端,需要下面两个模块

mod_proxy.so

mod_proxy_http.so

安装mod_proxy,mod_proxy_http:

/usr/local/httpd/bin/apxs -c -i  mod_proxy.c proxy_util.c

/usr/local/httpd/bin/apxs -c -i mod_proxy_http.so

在/usr/local/httpd/modules/下生成了:mod_proxy.so,  mod_proxy_http.so文件


编辑/usr/local/httpd/conf/httpd.conf

LoadModule  proxy_module modules/mod_proxy.so
LoadModule  proxy_http_module modules/mod_proxy_http.so

编辑/usr/local/httpd/conf/extra/httpd-vhost.conf

<span style="font-family:Courier New;">NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin root@localhost.com
    DocumentRoot "/home/test1"
    ServerName chivoxapp.com
    ServerAlias www.chivoxapp.com
    ErrorLog "logs/chivoxapp.com-error_log"
    CustomLog "logs/chivoxapp.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin root@localhost.com
    DocumentRoot "/home/zs"
    ServerName js.chivoxapp.com
    ProxyPass / http://172.16.20.50:8080/
    ProxyPassReverse / http://172.16.20.50:8080/
    <Directory "/home/zs">
      Allow from all
    </Directory>
    ErrorLog "logs/js.chivoxapp.com-error_log"
    CustomLog "logs/js.chivoxapp.com-access_log" common
</VirtualHost></span>

在tomcat的server.xml的host节点中配置:

  <Context docBase="/home/zs" path="/" />


终于折腾完!!!!


参考:http://my.oschina.net/huangyong/blog/190699


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sg_0504

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值