
在server.xml文件中增加以下节点:
port
Connector创建server socket并等待连接的TCP端口号。 *** 作系统在特定的IP地址上只允许一个服务器应用程序监听特定的端口。
protocol
为了使用HTTP处理器,该属性值必须为HTTP/1.1(缺省值)
proxyName
如果connector在代理配置中使用,将这个属性设置成调用request.getServerName()时返回的服务器名称。更多信息参考代理支持。
proxyPort
如果Connector在代理配置中使用,这个属性指定了调用request.getServerPort()返回的端口值。更多信息参考代理支持。
Configure your copy of Apache so that it includes the mod_proxy module. If you are building from source, the easiest way to do this is to include the --enable-module=proxy directive on the ./configure command line.
If not already added for you, make sure that you are loading the mod_proxy module at Apache startup time, by using the following directives in your httpd.conf file:
LoadModule proxy_module {path-to-modules}/mod_proxy.so
AddModule mod_proxy.c
Include two directives in your httpd.conf file for each web application that you wish to forward to Tomcat 6. For example, to forward an application at context path /myapp:
ProxyPass /myapp http://localhost:8081/myapp
ProxyPassReverse /myapp http://localhost:8081/myapp
which tells Apache to forward URLs of the form http://localhost/myapp/* to the Tomcat 6 connector listening on port 8081.
Configure your copy of Tomcat 6 to include a special <Connector>element, with appropriate proxy settings, for example:
<Connector port="8081" ...
proxyName="www.mycompany.com"
proxyPort="80"/>
apache与tomcat 反向代理
首先,有client proxy server
正向代理:有多个client,想要访问server,这时client与proxy是一个lan,proxy将client的请求转发给server,server只知道有人来请求,但不知道是谁(因为被代理了)
反向代理:这时proxy与server是一个lan,client想要访问server,proxy将client的请求拿到,之后从server里挑了一个出来,应答给client,对于client来说,它以为自己是直接访问server,其实却是proxy经过 *** 作后的结果。
正向代理代理客户端,反向代理代理服务端
反向代理好处:
1. 提升对静态文件的处理性能
2. 利用 Web 服务器来做负载均衡以及容错
3. 无缝的升级应用程序
这三点对一个 web 网站来说是非常之重要的,我们希望我们的网站不仅是速度快,而且要稳定,不能因为某个 Tomcat
宕机或者是升级程序导致用户访问不了。
Apache与tomcat的反向代理有两种方案,一种方案是用mod_jk,另一种方案使用Apache2.2之后自带的模块prxoy,这边主要讲proxy。
关于proxy,有2种代理的方法,一种是用ajp_proxy,一种是http_proxy。从名字上就可以看出,这是两种不同协议的代理方式,因为同属于proxy模块,配置起来差别不大。
安装好Apache后,它有许多自带的模块是不开启的,我们想用proxy模块,需要自己开启它。Apache目录下的conf\httpd.conf,Apache在启动时会根据里面的内容自动加载模块,不需要加载的模块在里面是被注释掉的,我们要做的是把注释去掉
#---------------------start------------------------
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.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
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule speling_module modules/mod_speling.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule buffer_module modules/mod_buffer.so
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule xml2enc_module modules/mod_xml2enc.so
----------------------end---------------------
将Include conf/extra/httpd-vhosts.conf注解去掉
模块的具体作用详解Apache官网说明
之后修改 conf\extra\httpd-vhosts.conf
可以在这里面看到相应配置
serveradmin :当出错的时候显示管理员的邮箱地址
documentroot :设置Apache自己的本地目录地址,{SRVROOT}为相对地址,使用时还有修改<directory>,以获取目录权限,这2个在httpd.conf中修改,或者不修改,直接写自己的地址
servername:要代理的地址
serveralias :要代理的地址的别名
errorlog:错误日志地址
customlog :日志地址
<VirtualHost*:80>
ServerAdmin husun@hotmail.com
ServerName localhost
ServerAlias localhost
ProxyPass /ajp://127.0.0.1:8009/
ProxyPassReverse /ajp://127.0.0.1:8009/
ErrorLog "logs/lbtest-error.log"
CustomLog "logs/lbtest-access.log" common
注意:这里的8009是与tomcat中ajp协议端口号是一致的。这样就实现了在访localhost的时候,Apache将这个请求代理成了 127.0.0.1:8009。不过反向代理的主要作用是维护服务端的安全,所以要做负载均衡,如下图官网所示,下图不全,具体请到官网上看
我的,简单的负载均衡就完成了
loadfactor表示响应次数,例如9119响应一次,9219响应2次,这样算一轮,
proxyset是负载均衡算法的加载,这些算法有自己的模块,使用时要先加载。
官网链接:http://httpd.apache.org/docs/2.4/
负载均衡参考:https://blog.csdn.net/ranxiaoqian/article/details/58594504
两种方案三种方式:https://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)