Confluence 6 使用 Apache 和 mod_proxy 的基本配置
在这些示例中,我们使用下面的信息:
http://www.example.com/confluence - 你计划使用的 URL
http://example:8090/ - Confluence 当前安装的主机名和端口
http://example:8091/ - Synchrony 当前安装的主机名和端口,这个服务被用来提供默认的协同编辑服务
/confluence - 这个是有关你 Confluence 计划使用的上下文(在主机名和端口的后面)
/synchrony - Synchrony 使用的上下文路径,这个提供了协同编辑服务
你需要将上面的 URL 替换成你自己的 URL。
1 设置上下文路径
如果你不需要使用上下文来访问 Confluence,例如你希望使用 www.example.com 来访问这个,你可以跳过这部分的内容。
设置你 Tomcat 中 Confluence 上下文的路径(在主机名和端口的后面)。在这个示例中,上下文路径被配置为 /confluence。
编辑 <installation-directory>conf/server.xml,找到
"Context" 的定义:
<Context path= "" docBase= "../confluence" debug= "0" reloadable= "true" > |
然后修改为:
<Context path= "/confluence" docBase= "../confluence" debug= "0" reloadable= "true" > |
在这个示例中,我们已经使用了 /confluence
为上下文的路径。请注意,你不能使用 /resources
为你的上下文路径,这是因为这个上下文的路径在 Confluence 中被用来定义资源,如果你使用这个配置的话,将会在 Confluence 中导致问题。
重启 Confluence,然后你可以尝试使用 http://example:8090/confluence 进行访问,并确保你能正确访问。
2 设置 URL 重定向
下一步,设置 URL 重定向。在 <installation-directory>conf/server.xml
文件中,使用示例的连接器为你的起始点。
注释掉默认的连接器(针对不使用代理的访问)。
在 HTTP - Proxying Confluence via Apache or Nginx over HTTP 头部列出的内容,取消注释连接器。
在上面显示内容的最下面,插入你的 proxyName 和 proxyPort :
<Connector port= "8090" connectionTimeout= "20000" redirectPort= "8443" maxThreads= "48" minSpareThreads= "10" enableLookups= "false" acceptCount= "10" debug= "0" URIEncoding= "UTF-8" |
如果你计划启用 HTTPS,使用 HTTPS - Proxying Confluence via Apache or Nginx over HTTPS. 下面的连接器。
3 配置 mod_proxy
使用下面的一个示例来编辑你的 http.conf
文件中有关应用服务器代理的配置。
你需要针对你的 Apache 启用下面的一些模块,如果这些模块还没有在你的 Apache 中启用的话:
- mod_proxy
- mod_proxy_http
- proxy_wstunnel
- mod_rewrite
(proxy_wstunnel 和 mod_rewrite 是针对 Confluence 6.0 需要的新的模块)
http.conf
文件的格式和模块的位置路径,针对你使用操作系统的不同可能有所不同。你们推荐 Windows 的用户在这里配置的时候使用绝对路径。
示例 1:配置上下文路径
在这个示例中,如果你已经在上面的第一步中设置了上下文路径,同时你的 Confluence 服务器也可以通过配置的上下文路径进行访问,例如这个 http://www.example.com/confluence。
在这个示例中,用户将会连接到 Synchrony,这个是针对协同编辑所使用的服务,是通过 WebSockets 直连的。
在配置文件中的配置顺序是非常重要的。
# Put this after the other LoadModule directives LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so # Put this in the main section of your configuration (or virtual host, if using Apache virtual hosts) ProxyRequests Off ProxyPreserveHost On <Proxy *> Require all granted </Proxy> ProxyPass /synchrony http: //<domain>:8091/synchrony <Location /synchrony> Require all granted RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] RewriteRule .* ws: //<domain>:8091%{REQUEST_URI} [P] </Location> ProxyPass /confluence http: //<domain>:8090/confluence ProxyPassReverse /confluence http: //<domain>:8090/confluence <Location /confluence> Require all granted </Location> |
注意:如果你使用的是 HTTP Server 2.2,但是你的 Confluence 使用的 6.0 及其后续版本,这个配置是不能成功的。如果你计划使用 SSL ,你需要使用 2.4.10 或者后续版本。
示例 2:不使用上下文的配置
在这个示例中,如果你已经跳过了第一步的配置,没有使用上下文路径进行访问,例如访问的 URL 为 http://www.example.com/。
在这个示例中,用户将会连接到 Synchrony,这个是针对协同编辑所使用的服务,是通过 WebSockets 直连的。
在配置文件中的配置顺序是非常重要的。
# Put this after the other LoadModule directives LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so # Put this in the main section of your configuration (or virtual host, if using Apache virtual hosts) ProxyRequests Off ProxyPreserveHost On RewriteEngine On RewriteCond %{REQUEST_URI} !^/synchrony RewriteRule ^/(.*) http: //<domain>:8090/$1 [P] <Proxy *> Require all granted </Proxy> ProxyPass /synchrony http: //<domain>:8091/synchrony <Location /synchrony> Require all granted RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] RewriteRule .* ws: //<domain>:8091%{REQUEST_URI} [P] </Location> ProxyPass / http: //<domain>:8090 ProxyPassReverse / http: //<domain>:8090 <Location /> Require all granted </Location> |
注意:如果你使用的是 HTTP Server 2.2,但是你的 Confluence 使用的 6.0 及其后续版本,这个配置是不能成功的。如果你计划使用 SSL ,你需要使用 2.4.10 或者后续版本。
4 重启 Apache
为了让新的配置生效,你需要运行下面的命令来让 Apache 重启后载入新的配置文件:
sudo apachectl graceful |
5 禁用 HTTP 压缩
如果在代理和 Tomcat 中启用了压缩,这个将会在整合其他 Atlassian 应用的时候出现问题,例如 JIRA。请禁用 HTTP 压缩,并请参考 Compressing an HTTP Response within Confluence 页面中的内容。
6 修改 Confluence 基础 URL
最后一个步骤是配置 Base URL 的地址来指向你没有使用的代理的地址,例如 http://www.example.com/confluence。
https://www.cwiki.us/display/CONF6ZH/Using+Apache+with+mod_proxy
Confluence 6 使用 Apache 和 mod_proxy 的基本配置的更多相关文章
- Confluence 6 使用 Apache 和 mod_proxy
Atlassian 应用允许用户使用反向代理,但是 Atlassian 并不会为这个功能的配置提供支持.因此,Atlassian 也不能保证能够为这些配置提供任何支持. 如果你在配置上有任何需求,请参 ...
- Confluence 6 使用 Apache 和 mod_proxy 添加 SSL和其他
添加 SSL 如果你计划在你的应用中启用 SSL ,请参考 Securing your Atlassian applications with Apache using SSL页面中的内容,并确定你在 ...
- 给已经编译运行的Apache增加mod_proxy模块的配置方法
在Linux系统下,需要给已经编译运行的Apache增加mod_proxy模块,可以按照如下方法配置. 具体配置步骤如下: 1. 首先定位到Apache源码的 proxy目录 # cd /root/s ...
- Confluence 6 使用 Apache 的 mod_jk
在 Confluence 6 及其后续版本中,不能使用 mod_jk 来做代理.这是因为 Synchrony 服务导致的这个限制. Synchrony 在协同编辑的时候需要启动,同时还不能接受 A ...
- Apache模块 mod_proxy 转自http://www.php100.com/manual/apache2/mod/mod_proxy.html
Apache模块 mod_proxy 说明 提供HTTP/1.1的代理/网关功能支持 状态 扩展(E) 模块名 proxy_module 源文件 mod_proxy.c 概述 警告 在您没有对服务器采 ...
- Apache模块 mod_proxy
转: Apache模块 mod_proxy 转自http://www.php100.com/manual/apache2/mod/mod_proxy.html Apache模块 mod_proxy 说 ...
- apache的mod_proxy 反向代理
在某台机器上(跑着apache)为某个域名(如www.selboo.com.cn)做反向代理正好知道apache有mod_proxy这个 东东于是看了看文档写下了如下的配置文件: <Virtua ...
- window xp Apache与Tomcat集群配置--转载
转载地址:http://www.cnblogs.com/obullxl/archive/2011/06/09/apache-tomcat-cluster-config.html 一. 环境说明 Win ...
- Apache,PHP,MySQL,PMA手动配置的注意事项
注:本文之前发布在自己的QQ空间,复制过来的时候,颜色信息丢失了,回头有空再把颜色重新标上! 前言:LAMP(Linux+Apache+MySQL+PHP)环境是目前开源社区最活跃的开发和运行平台,有 ...
随机推荐
- Linux centos 防火墙篇
防火墙的关闭 service iptables stop 永久关闭 chkconfug iptables off 查看状态 service iptables status
- MySQL api
今天看去年年中写的代码,留意到一个关键时刻能提高效率的api:on duplicate key update: 语法: INSERT INTO INSERT INTO g_iot_user_build ...
- HttpClient 测试web API上传文件实例
1.使用HttpClient 测试上传文件并且设置header信息: using Lemon.Common; using Newtonsoft.Json; using System; using Sy ...
- mysql 5.7 ERROR 1054(42S22) Unknown column 'password' in ‘field list’ 报错
mysql 忘记密码 报错?ERROR 1054(42S22) Unknown column 'password' in ‘field list’原因:5.7版本下的mysql数据库下已经没有pass ...
- [C++]Linux之多进程运行代码框架
声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步- 0.0 多进程代码框架示例 /* @url: ...
- Linux之Ubuntu下安装屏幕录像软件(SimpleScreenRecorder)【摘抄】
本博文全文属于摘抄自: (见文末处参考文献)(由于担心原博文丢失,以后查找不到,故此原文摘抄,以备日后多次查阅) 在日常工作中,有时需要对屏幕进行录像,以制作讲解文档等.下面介绍在Linux上安装屏幕 ...
- php serialize(),unserialize()
序列化serialize()与反序列化unserialize(): 序列化serialize():就是将一个变量所代表的 “内存数据”转换为“字符串”的形式,并持久保存在硬盘(写入文件中保存)上的一种 ...
- MySQL对表数据操作
一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table sys_application comment '系 ...
- 如何设置vmware 让别人连接你的虚拟机
参考链接: http://blog.csdn.net/yuan1590/article/details/53504042 http://blog.csdn.net/u012110719/article ...
- sqlmap 使用总结
一直在用sqlmap,一直在浅层的使用方面,所以我想深入了解一下sqlmap. 参考文章: Sqlmap使用教程[个人笔记精华整理] http://www.vuln.cn/1992 sq ...