2011-03-31 18:00:00 happyangelling 阅读数 0
  • apache web 服务器安装

    能够掌握Linux 操作系统的基础知识和操作方法,侧重于Linux 操作系统各种配置方法的学习。

    6032课时 0分钟 31人学习 庄博
    免费试看
     Apache HTTP server Tomcat server 整合,一般是希望对于用户只公布 Apache HTTP server 的网址,而 Tomcat 的网址则不公布,扮演一个幕后英雄的角色。访问 Tomcat HTTP 请求,通过 Apache 转发给 Tomcat Tomcat 处理完后,将 HTTP 回应返回给 Apache ,然后 Apache  HTTP 回应发回给用户端浏览器。
Apache HTTP server Tomcat server 直接的 HTTP 数据传输,有很多种方法。
     
方法一,使用 mod_jk 。很多网站上介绍到 Apache HTTP server Tomcat server 整合的时候,都是在介绍   mod_jk.so 的使用,这是一种比较老的方法,并且需要额外下载 mod_jk Apache Tomcat 的默认配置文件都需要改动。
方法二,  URL rewrite ,也就是对于指定格式的 URL ,转发给某个 Tomcat 的网址。这里所说的指定格式,是指 Apache 所使用的正则表达式,通俗地将,是一种类似 * 的一种比较高级通配符。这种方法不需要下在额外的文件,只需要配置 Apache
方法三, mod_proxy_ajp ,仅在 Apache 2.1 及以后的版本中可用, Apache 自带的一个新功能模块。这时 Apache 使用 Apache JServ Protocol Tomcat 通讯。不需要下在额外的文件,需要改动 Apache Tomcat 的默认配置文件都需要改动。
方法四, mod_proxy 。其实 mod_proxy 既可以做类似于 Wingate 一样的公司局域网共享上网代理,也可以做反向代理 (Reverse proxy) 。这里使用的是反向代理功能,用户端浏览器不需要把代理服务器改成这里的 Apache 地址。 mod_proxy Apache 自带功能,并且配置比较简单。
 

yum install gcc –y

wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.17.tar.gz

wget http://www.oracle.com/technetwork/indexes/downloads/index.html

wget http://labs.renren.com/apache-mirror/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.tar.gz

我是用一台服务器 做的 环境如下

Centos 5.5 64 16 cpu   32G 内存

Apache + tomcat (开启四个端口)

#ar zxvf http-2.2.17.tar.gz

#d httpd-2.2.17

#/configure --prefix=/usr/local/apache --enable-modules=so --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-rewrite

#make ; make install

#cp support/apachectl /etc/init.d/httpd

#chmod 755 /etc/init.d/httpd

#vim /etc/init.d/httpd

#chconfig –add httpd

#chkconfig –level 345 httpd on

cd ..

chmod +x jdk-x64.bin           # 添加执行权限

./jdk-x64.bin              # 安装 jdk

mv jdk1.6.0_23/ /usr/java       

vim /etc/profile     # 添加 java 环境变量

#Java Environment

JAVA_HOME=/usr/java

JAVA_BIN=/usr/java/bin

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH

source /etc/profile  

#java –version

    java version "1.6.0_23"

    Java(TM) SE Runtime Environment (build 1.6.0_23-b05)

    Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode)

 

#tar zxvf apache-tomcat-7.0.8.tar.gz

#mv apache-tomcat-7.0.8 /usr/local/tomcat73

#vim /etc/profile       # 添加 tomcat 环境变量

TOMCAT_HOME=/usr/local/tomcat73

CATALINA_HOME=/usr/local/tomcat73

CATLINA_BASE=/usr/local/tomcat73

/usr/local/tomcat73/bin/catalina.sh start   # 添加启动脚本

export TOMCAT_HOME   CATALINA_HOME   CATALINA_BASH TOMCAT_BIN

#source /etc/profile

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule rewrite_module modules/mod_rewrite.so

   apache 虚拟主机前边的 # 去掉

           Include conf/extra/httpd-vhosts.conf

   添加 Include conf/extra/httpd-vhosts.conf   如下

<VirtualHost *80>

     ServerAdmin crazylinux@163.com

     ProxyRequests Off

     Proxypass / balancer://proxy/

     <Proxy balancer://proxy>

         Order Deny,Allow

         Allow from all

         BalancerMember http://127.0.0.1:8844          #tomcat   端口 (要用的端口,预设值的   可以随便设置)

         BalancerMember http://127.0.0.1:8855            #tomcat   端口

          BalancerMember http://127.0.0.1:8866            #tomcat   端口

           BalancerMember http://127.0.0.1:8877           #tomcat   端口

     </Proxy>

</VirtualHost>

保存修改   启动 apache 服务

#/usr/local/apache/bin/apachectl -k start

  

修改 tomcat ,添加虚拟主机 按端口走 8844 8855 8866 8877 按照预设值的

#vim /usr/local/tomcat73/conf/server.xml 只修改红色字体

  <Service name="Catalina0">

<Connector port="8044" protocol="AJP/1.3" redirectPort="8443" />

    <Connector port=" 8844 " />

    <Engine name="Catalina0" defaultHost="localhost" jvmRoute=" jvm1 ">

      <Logger className="org.apache.catalina.logger.FileLogger" />

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

             resourceName="UserDatabase" />

      <Host name="localhost" appBase=" webapps0 " />

    </Engine>

  </Service>

  <Service name="Catalina1">

<Connector port="8055" protocol="AJP/1.3" redirectPort="8443" />

    <Connector port=" 8855 " />

    <Engine name="Catalina1" defaultHost="localhost" jvmRoute=" jvm2 ">

      <Logger className="org.apache.catalina.logger.FileLogger" />

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

             resourceName="UserDatabase" />

      <Host name="localhost" appBase=" webapps1 " />

    </Engine>

    </Service>

  <Service name="Catalina2">

<Connector port="8066" protocol="AJP/1.3" redirectPort="8443" />

    <Connector port=" 8866 " />

    <Engine name="Catalina2" defaultHost="localhost" jvmRoute=" jvm3 ">

      <Logger className="org.apache.catalina.logger.FileLogger" />

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

             resourceName="UserDatabase" />

      <Host name="localhost" appBase=" webapps2 " />

    </Engine>

  </Service>

  <Service name="Catalina3">

<Connector port="8077" protocol="AJP/1.3" redirectPort="8443" />

    <Connector port=" 8877 " />

    <Engine name="Catalina3" defaultHost="localhost" jvmRoute=" jvm4 ">

      <Logger className="org.apache.catalina.logger.FileLogger" />

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

             resourceName="UserDatabase" />

      <Host name="localhost" appBase=" webapps3 " />

    </Engine>

  </Service>

然后 创建 tomcat web 目录在 /usr/local/tomcat73/     webapps0 webapps1 webapps2 webapps3 并在每个目录里面添加 index1.jsp 并添加 每个端口的对应号

启动 tomcat

#/usr/local/tomcat73/bin/start.sh

#/usr/local/apache/bin/apachetl –k restart

  查看端口   netsant –ntlp

[root@localhost tomcat73]# netstat -ntlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address                Foreign Address              State        PID/Program name   

tcp         0       0 0.0.0.0:964                  0.0.0.0:*                    LISTEN       2902/rpc.statd      

tcp         0       0 0.0.0.0:111                  0.0.0.0:*                    LISTEN       2849/portmap        

tcp         0       0 127.0.0.1:631                0.0.0.0:*                    LISTEN       3155/cupsd          

tcp         0       0 127.0.0.1:25                 0.0.0.0:*                     LISTEN       3178/sendmail: acce

tcp         0       0 127.0.0.1:6010               0.0.0.0:*                    LISTEN       11977/1             

tcp         0       0 :::8866                      :::*                         LISTEN       15836/java          

tcp         0       0 :::8066                      :::*                         LISTEN       15836/java          

tcp         0       0 ::ffff:127.0.0.1:8005        :::*                         LISTEN       15836/java          

tcp         0       0 :::8009                      :::*                         LISTEN       15836/java          

tcp         0       0 :::8844                      :::*                         LISTEN       15836/java          

tcp         0       0 :::8044                      :::*                          LISTEN       15836/java          

tcp         0       0 :::8877                      :::*                         LISTEN       15836/java          

tcp         0       0 :::8077                      :::*                         LISTEN       15836/java           

tcp         0       0 :::80                        :::*                         LISTEN       15987/httpd         

tcp         0       0 :::8080                      :::*                         LISTEN       15836/java          

tcp         0       0 :::22                         :::*                         LISTEN       25432/sshd          

tcp         0       0 :::8855                      :::*                         LISTEN       15836/java          

tcp         0       0 :::8055                      :::*                          LISTEN       15836/java          

tcp         0       0 ::1:6010                     :::*                         LISTEN       11977/1  

 

 

看到了 80   8844 8855 8866 8877   tomcat 虚拟主机   apache 都启动了 访问下试试吧

 

2015-03-10 22:42:13 zhdl11 阅读数 15139
  • apache web 服务器安装

    能够掌握Linux 操作系统的基础知识和操作方法,侧重于Linux 操作系统各种配置方法的学习。

    6032课时 0分钟 31人学习 庄博
    免费试看

最近遇到一个项目,需要访问某单位的内网服务器,对方要求必须要配置一个前置机,来转发所有的web请求,然后就学了一下反向代理,查了一些资料,也完成了HelloWorld的例子。

关于反向代理的介绍,可以参考 介绍1介绍2 相互补充吧,关于概念的介绍挺不错的。

我现在仅仅是完成了第一步,就是配置转发请求。
操作系统是centos,关于linux安装apache就不多说了

apache安装完成后,进入 /etc/httpd/conf目录,打开 httpd.conf文件
然后

  • 1.先检查代理模块是否开启
  • 2.配置最基本的反向代理
  • 3.重启apache

第一步
看一下

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

是否打开,如果没有打开,去掉上面代码前面的#

第二步

打开/etc/httpd/conf目录下的httpd.conf,在末尾添加如下代码

<VirtualHost 123.123.123.123:8800>
ServerName example
ServerAlias example
ProxyRequests off
<Proxy *>
    Order allow,deny
    Allow from all
</Proxy>
ProxyPass / http://www.baidu.com/
ProxyPassReverse / http://www.baidu.com/
</VirtualHost>

简单说一下这几个参数

  • 123.123.123.123 是服务器使用的IP地址
  • 8800 是apache所监听的端口
  • ProxyPass 与 ProxyPassReverse 后面的『http://www.baidu.com/』是需要我们的请求的真正的目的服务器,其前边的 空格+/+空格 也是属于我们配置的一部分

第三步
重启apache, 进入 /etc/init.d/ 目录,执行 ./httpd restart

这样,当我们在客户端浏览器中输入 http://123.123.123.123:8800/ 时,页面将返回百度首页,当我们访问访问http://123.123.123.123:8800/admin/index.html 时,应该返回 http://www.baidu.com/search/error.html 因为我们访问的路径不存在嘛

以上就是最基本的使用apache配置代理转发请求
更详细的配置可以再看更详细的博客
如:
apache配置正向代理与反向代理
Ubuntu配置反向代理

2018-07-07 11:27:01 mk_somebody 阅读数 681
  • apache web 服务器安装

    能够掌握Linux 操作系统的基础知识和操作方法,侧重于Linux 操作系统各种配置方法的学习。

    6032课时 0分钟 31人学习 庄博
    免费试看
##编辑/usr/local/apache/conf/httpd.conf

   LoadModule proxy_module modules/mod_proxy.so

   LoadModule proxy_http_module modules/mod_proxy_http.so

##编辑/usr/local/apache/conf/extra/httpd_vhost.conf

<VirtualHost *:80>
    ServerAdmin hs.hzhderp.com
    ServerName  hs.hzhderp.com
    DocumentRoot  "/var/www/apache-site/hunsha/"  ##apache 本身PHP目录
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
    ProxyPreserveHost On
    ProxyPass /hunsha  http://localhost:8080/hunsha  ##apache 代理的tomcat server
<Directory "/var/www/apache-site/hunsha/">##apache 本身PHP目录
    Options  FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

</VirtualHost>

##编辑/usr/local/tomcat/conf/server.xml


<Host name="localhost"  appBase=""
            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 <Context path="/hunsha" docBase="/var/www/tomcat-site/hunsha" debug="0" reloadable="true" crossContext="true"/>##代理的tomcat server 的项目路径配置

      </Host>

##重启服务

#systemctl restart tomcat

#systemctl restart httpd  


##http://hs.hzhderp.com/hunsha/

2018-12-05 20:23:05 excellent_L 阅读数 0
  • apache web 服务器安装

    能够掌握Linux 操作系统的基础知识和操作方法,侧重于Linux 操作系统各种配置方法的学习。

    6032课时 0分钟 31人学习 庄博
    免费试看

一、正向代理

一、概念:

        正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

二、测试环境

真机 : 172.25.254.3

apache主机 : 172.25.254.103

squid主机:172.25.254.203

正向代理的实现(翻墙)
1.在真实主机上连上wifi,让主机可以ping通百度,并开启路由功能


2.在squid主机中配置网络

重启网络

3.测试:squid主机可以ping通百度

3.在squid主机中安装squid服务

4.修改squid主机的squid配置文件

编辑vim /etc/squid/squid.conf

第56行:http_access allow all
第59行:http_port 3128
第62行:取消注释

/var/spool/squid  表示缓存目录
16    表示有16个一级目录
256   表示有256个二级目录
100   表示缓存大小不能超过100M

5.将squid主机的火墙关掉
systemctl stop firewalld

6.关掉apache主机的火墙

这里的apache主机上装有http和https,用于测试

7.重启服务后会看到/var/spool/squid目录下,有16个一级目录,256个二级目录
systemctl start squid


8.测试:

apache主机不能ping通网络

在apache主机浏览器中中Edit->preferences->Advanced->Network->settings

进入网页Edit  点最后一个 点Advanced(齿轮)点Network

手动添加代理服务器,并将端口设置为3128

在浏览器中输入百度网址,则可以看到百度的页面,说明正向代理成功

去掉代理,则再输入百度网址,就不能访问了

二、反向代理

一、概念

        反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

二、CDN简介

         CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置反向代理节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

反向代理的实现

在做这个实验之前要取消正向代理的浏览器设定

1.在squid主机中编辑squid配置文件

vhost       表示虚拟主机
vport       表示虚拟端口
parent    表示172.25.254.103是它的父级目录
80       表示访问父级目录的80端口
0      表示没有备用机
proxy-only   表示只做代理

2.重新启动服务

3.修改真机解析文件中的ip为squid主机的ip

4.测试:

在真机浏览器中,输入172.25.254.103,可以看到相应发布文件内容

在真机浏览器中,输入172.25.254.203(squid主机ip),显示172.25.254.103( apache主机ip)/var/www/html中默认发布文件中的内容

说明反向代理成功

轮询代理

在squid主机中编辑squid配置文件

这里需要两台配置好apache的主机,ip分别为:

172.25.254.103

172.25.254.130

重启服务

3.测试:

在真机中输入www.westos.com,显示172.25.254.103主机/var/www/html中默认发布文件中的内容

刷新一次页面,就会显示172.25.254.130主机/var/www/html中默认发布文件中的内容

4.我们还可以添加权重系数weight=2 将其添加到ip为172.25.254.103主机后则表示访问两次172.25.254.103主机,在访问一次172.25.254.130主机。

三、CDN的补充

apache + squid =cdn 内容发布网络

关键技术

(1)内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;

(2)内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;

(3)内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;

(4)性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。

主要特点

1、本地Cache加速 提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性

2、镜像服务 消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。

3、远程加速 远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度

4、带宽优化 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。

5、集群抗攻击 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。

2013-04-14 23:28:30 zhangwentian 阅读数 0
  • apache web 服务器安装

    能够掌握Linux 操作系统的基础知识和操作方法,侧重于Linux 操作系统各种配置方法的学习。

    6032课时 0分钟 31人学习 庄博
    免费试看
Apache虚拟主机正向、反向代理

首先从了解下正向和反向的区别
一、正向代理
客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(在客户端的浏览器中设置代理服务器)
适用于:局域网的代理服务器(一般是网关,相当于squid的一般用法)、访问某个受限网络的代理服务器,如教育网访问某些国外网站需要找代理

[img]http://dl.iteye.com/upload/attachment/0083/1541/926d5751-224b-30c5-8610-41f12329b6e8.jpg[/img]

二、反向代理
客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样(此代理对客户端透明,即客户端不用做如何设置,并不知道实际访问的只是代理而已,以为就是访问的目标)
适用于: idc的某台目标机器只对内开放web,外部的客户端要访问,就让另一台机器做proxy,外部直接访问proxy即相当于访问目标、idc的目标机器的某个特殊的web服务跑在非正常端口如9000,而防火墙上只对外开放了80,此时可在80上做proxy映射到9000,外部访问80即相当于9000

[img]http://dl.iteye.com/upload/attachment/0083/1543/b2a8c892-fa58-3bbc-913a-fe94afd9f026.jpg[/img]

Proxy功能需要加载Proxy模块,在Linux中Apache加载Proxy模块有两种方式:静态和动态
1. 静态加载在编译Apache时需要加上编译参数--enable-proxy来开启Proxy功能
2. 动态加载方法,首先进入apache源码的目录,然后依次执行如下:
# cd modules/proxy
# /usr/local/apache2/bin/apxs -c -i -a mod_proxy.c proxy_connect.c proxy_http.c proxy_util.c
安装完成后在 /usr/local/apache2/modules目录下会产生相应的模块mod_proxy.so等,最后在httpd.conf里配置
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy.so

最后我们来看下Apache的正向代理和反向代理的配置
apache安装成功以后需要对它的两个配置文件conf/httpd.conf和conf/extra/httpd-vhosts.conf做如下小修改:
把Include conf/extra/httpd-vhosts.conf前面的“#”去掉,然后配置conf/extra/httpd-vhosts.conf
正向代理配置如下
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from www.xtgly.com
</Proxy>

反向代理在虚拟主机中的应用
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.xtgly.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://www.xtgly.com
ProxyPassReverse / http://www.xtgly.com
</VirtualHost>

http://www.360doc.com/content/11/0228/17/834950_96915415.shtml
http://www.360doc.com/content/06/1224/17/6785_305047.shtml