文档章节

Confluence 6 使用 Apache 和 mod_proxy 的基本配置

honeymoose
 honeymoose
发布于 2018/08/19 06:01
字数 1465
阅读 32
收藏 0

在这些示例中,我们使用下面的信息:

http://www.example.com/confluence - 你计划使用的 URL

http://example:8090/ - Confluence 当前安装的主机名和端口

http://example:8091/ - Synchrony 当前安装的主机名和端口,这个服务被用来提供默认的协同编辑服务

/confluence - 这个是有关你 Confluence 计划使用的上下文(在主机名和端口的后面)

/synchrony - Synchrony 使用的上下文路径,这个提供了协同编辑服务

你需要将上面的 URL 替换成你自己的 URL。

1 设置上下文路径

(warning) 如果你不需要使用上下文来访问 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"

   protocol="org.apache.coyote.http11.Http11NioProtocol"

   scheme="http" proxyName="www.example.com" proxyPort="80"/>

如果你计划启用 HTTPS,使用 HTTPS - Proxying Confluence via Apache or Nginx over HTTPS. 下面的连接器。

3 配置 mod_proxy

使用下面的一个示例来编辑你的 http.conf 文件中有关应用服务器代理的配置。

(warning) 你需要针对你的 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 直连的。

(warning) 在配置文件中的配置顺序是非常重要的。

Apache HTTP server 2.4

# 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 直连的。

(warning) 在配置文件中的配置顺序是非常重要的。

Apache HTTP server 2.4

# 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

© 著作权归作者所有

honeymoose
粉丝 4
博文 604
码字总数 281422
作品 0
宝山
私信 提问
加载中

评论(0)

Confluence 6 使用 Apache 的 mod_jk

在 Confluence 6 及其后续版本中,不能使用 modjk 来做代理。这是因为 Synchrony 服务导致的这个限制。 Synchrony 在协同编辑的时候需要启动,同时还不能接受 AJP 连接。请参考 Using Apache...

honeymose
2018/08/10
10
0
Confluence 6 代理和 HTTPS 详细配置指南链接

详细配置指南 更多有关连接器示例,我们提供了一些按步骤配置的指南来帮助你启用 HTTPS 并正确配置你的代理。 HTTPS: Running Confluence Over SSL or HTTPS (在 Tomcat 中配置 HTTPS) Ru...

honeymose
2018/08/03
12
0
Confluence 6 协同编辑问题解决

协同编辑是 Synchrony 提供的,用于在编辑的时候实时同步。在一般的情况下,这个进程是不需要 Confluence 的管理员进行手动管理的。 这个页面将会帮助你 Confluence 安装实例中 Synchrony 出...

honeymoose
2018/10/11
0
0
Confluence 6 通过 SSL 或 HTTPS 运行

Atlassian 应用可以通过 HTTPS 进行访问,但是 Atlassian 并不提供有关访问的支持服务,同时 Atlassian 不能保证能够提供所有的支持。 如果你的 assistance 在证书转换方面有相关服务的需求,...

honeymose
2018/08/09
16
0
Confluence 6 管理协同编辑 - 代理和 SSL 的考虑

对于你如何连接 Synchrony 是与你的环境有关的。我们知道绝大部分的 Confluence 站点是运行在反向代理后面的,同时还使用了 SSL。这里是帮助你在你环境中识别正确的配置的一些信息和一些针对...

honeymose
2018/10/10
18
0

没有更多内容

加载失败,请刷新页面

加载更多

过拟合问题

本文作者:HelloDeveloper 很多人说,看了再多的文章,可是没有人手把手地教授,还是很难真正地入门AI。为了将AI知识体系以最简单的方式呈现给你,从这个星期开始,芯君邀请AI专业人士开设“...

百度开发者中心
2019/09/23
8
0
在Ruby on Rails中对nil v。空v。空白的简要解释 - A concise explanation of nil v. empty v. blank in Ruby on Rails

问题: I find myself repeatedly looking for a clear definition of the differences of nil? 我发现自己一再寻找nil?差异的明确定义nil? , blank? , blank? , and empty? , empty? in ......

javail
55分钟前
15
0
DevOps与NoOps现状分析

时下的IT趋势中,DevOps 正是一个热语。它起源于几年前SPA (单页面应用) 的前端应用.我认为常态的IT技术适应就是,在新技术爆发的那一时刻开始,立马就会被敏锐的人们所采用,然后被快速传播...

tidings_
58分钟前
17
0
OSChina 周六乱弹 —— 代码创造人工生命

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑推荐:《inner universe》 - ORIGA 《inner universe》 - ORIGA 手机党少年们想听歌,请使劲儿戳(这里) 当机器人具有意识的时候,...

小小编辑
今天
20
1
怎么创建远程桌面连接

1、IIS7远程桌面 管理中文最新版是一款专业的远程桌面管理工具,更新了原09网络远程桌面管理,较之以前的版本,操作更加便捷,能够同时远程多台服务器,多台服务器间自由切换,完全无压力。I...

吹的心痒痒
今天
22
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部