Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Viewport Redirect
redirectToKB:使用 Apache HTTP Server (mod_proxy_http) 代理 Atlassian 服务器应用

Excerpt
hiddentrue

请勿更改本页的标题。它引用自“仪表盘诊断”插件。

Include Page
JSDOC:_Note About Proxies
JSDOC:_Note About Proxies

本页介绍了如何使用 mod_proxy 将 Apache HTTP Server(也称为 httpd)与 JIRA 集成,这样,Apache 便可通过 HTTP 作为反向代理运行。如果需要 HTTPS 配置,请参见我们的使用 SSL 将 JIRA 与 Apache 集成文档。配置 Apache 可让 JIRA 能够通过非标准 HTTP 端口(如 8080)运行,而且用户可以通过标准 HTTP 访问 JIRA,因为流量将通过代理进行路由。

您可以配置 Apache 以允许通过以下任一方式访问 JIRA:

本文档将介绍如何使用以上三种配置简单直接地实施 mod_proxy。如果需要更复杂的解决方案,请参阅 Apache HTTP Server 版本文档或咨询贵组织中的 Apache SME;如果需要,也可以在 Atlassian Answers 上提问或联系我们的 Atlassian Expert

Expand
title展开可查看常见 Apache 配置的示例
  1. JIRA 在 LAN 内一个服务器的 8080 端口上运行,该服务器无法从外部访问(路由器/防火墙不会将 8080 端口的流量转发给它)。
  2. Apache 安装在可通过 HTTP (80) 从外部访问的另一个服务器(或 JIRA 所在的服务器)上。
  3. 然后,系统通过 HTTP 使用相应的 URL (VirtualHost) 访问 Apache,从而将流量路由到 JIRA 服务器或从中路由出来。
Panel

本页内容:

Table of Contents
maxLevel4
minLevel1

步骤 1:配置 Tomcat

  1. 关闭 JIRA。
  2. 编辑 Tomcat 的 server.xml,使其包含所需的 JIRA 上下文路径。下面的示例使用了 path="jira",这意味着,如果采用的是默认 JIRA 端口,即可通过 http://jiraserver:8080/jira 访问 JIRA。

    Info

    只有设置为通过上下文路径(如 http://atlassian.com/jira)访问 JIRA 时,才需要执行此步骤。如果不需要,可跳过这一步。

    Code Block
    languagehtml/xml
    <Engine defaultHost="localhost" name="Catalina">            <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">                <Context docBase="${catalina.home}/atlassian-jira" path="/jira" reloadable="false" useHttpOnly="true">                    <!--                     ====================================================================================                     Note, you no longer configure your database driver or connection parameters here.                     These are configured through the UI during application setup.                     ====================================================================================                    -->                    <Resource auth="Container" factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60" name="UserTransaction" type="javax.transaction.UserTransaction"/>                    <Manager pathname=""/>                </Context>            </Host>

    (info) 确保 path 值的前面带有正斜杠 (/)。例如,应为 path="/jira" 而不是 path="jira"

  3. 编辑 Tomcat 的 server.xml,使其包含用于代理请求的单独的连接器。此操作需要使用 proxyName 和 proxyPort 属性。将这些属性替换为代理的相应域和端口,如下例所示:

    Code Block
    languagehtml/xml
    <Service name="Catalina"> 	<!-- Apache Proxy Connector -->        <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"             proxyName="jira.atlassian.com" proxyPort="80"/> 	<!-- Standard HTTP Connector -->        <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8081" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true" />
  4. 启动 JIRA。
  5. 测试 JIRA 是否可通过标准连接器访问,如果适用,请使用上下文路径(如 http://jiraserver:8081/jira)进行测试。
  6. 通过相应的代理连接器访问 JIRA,测试新连接器是否已生效。操作结果因上下文路径而异:
    1. 如果上下文路径为空或根目录 (/),则通过代理连接器(如 http://jiraserver:8080/)访问 JIRA 将转到 JIRA 并显示以下警告:


    2. 如果上下文路径不为空或根目录 (/),如 /jira,则通过代理连接器(如 http://jiraserver:8080/jira)访问 JIRA 会将您重定向到已配置的代理(如 https://jira.atlassian.com/jira)。
Hide

步骤 2:配置 Apache HTTP Server

本文档未介绍如何安装 Apache 和配置 DNS。此外,文档假设已针对 JIRA 域安装了 Apache 2.2 并配置了 DNS 条目。由于 Apache 的配置特定于所使用的操作系统,因此本文档只提供了部分发行版及其配置。

2.1 启用代理模块

Debian/Ubuntu
Expand
title展开以查看 Debian/Ubuntu 说明
  1. 按照以下方式启用模块:

    Code Block
    languagebash
    $ sudo a2enmod proxy_httpConsidering dependency proxy for proxy_http:Enabling module proxy.Enabling module proxy_http.To activate the new configuration, you need to run:  service apache2 restart
  2. 重新启动 Apache。
Windows/其他操作系统
Expand
title展开以查看 Windows/其他操作系统说明
  1. 找到并编辑 httpd.conf 文件,添加以下命令行:

    Code Block
    LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so
  2. 重新启动 Apache。

2.2 配置 Apache 以使用这些模块

Debian/Ubuntu
Expand
title展开以查看 Debian/Ubuntu 说明
  1. 切换到用户 root
  2. 备份现有实例或创建一个新实例。本文档未介绍如何创建新实例(复制默认实例即可)。
  3. 修改 $APACHE_INSTALL/sites-available 中的现有实例,如 default
  4. 将以下内容添加到 VirtualHost 中,将 jiraserver 替换为 JIRA 服务器的主机名并修改端口(若需要)。

    在其自己的域或子域中访问:
    No Format
    # JIRA Proxy Configuration:<Proxy *>        Order deny,allow        Allow from all</Proxy>ProxyRequests           OffProxyPreserveHost       OnProxyPass               /       http://jiraserver:8080/ProxyPassReverse        /       http://jiraserver:8080/

    (info) 如果 URL 末尾缺少正斜杠,则会出现代理错误,因此请确保正确添加正斜杠!

    使用以下上下文路径:
    No Format
    # JIRA Proxy Configuration:<Proxy *>        Order deny,allow        Allow from all</Proxy>ProxyRequests           OffProxyPreserveHost       OnProxyPass               /jira       http://jiraserver:8080/jiraProxyPassReverse        /jira       http://jiraserver:8080/jira

    (info) 使用的路径必须与 Tomcat 上下文路径相同。例如,将 /jira 转发到 /jira520 必须使用大量的重写规则,而这些规则有时并不可靠。

  5. (可选):使用以下命令启动实例:

    Code Block
    bash
    bash
    # a2ensite jiraEnabling site jira.To activate the new configuration, you need to run:  service apache2 reload

    (info) 只有在创建新实例而不是使用默认实例时才需要执行此步骤。

  6. 重新加载 Apache 配置。
  7. 进行测试,方法是通过 Apache 访问 JIRA,例如 http://jira.comhttp://atlassian.com/jira
Windows/其他操作系统
Expand
title展开以查看 Windows/其他操作系统说明
  1. 找到并编辑 httpd.conf 文件。
  2. 将以下内容添加到 VirtualHost 中,将 jiraserver 替换为 JIRA 服务器的主机名并修改端口(若需要)。

    在其自己的域或子域中访问:

    No Format
    # JIRA Proxy Configuration:<Proxy *>        Order deny,allow        Allow from all</Proxy>ProxyRequests           OffProxyPreserveHost       OnProxyPass               /       http://jiraserver:8080/ProxyPassReverse        /       http://jiraserver:8080/

    (info) 如果 URL 末尾缺少正斜杠,则会出现代理错误,因此请确保正确添加正斜杠!

    使用以下上下文路径:

    No Format
    # JIRA Proxy Configuration:<Proxy *>        Order deny,allow        Allow from all</Proxy>ProxyRequests           OffProxyPreserveHost       OnProxyPass               /jira       http://jiraserver:8080/jiraProxyPassReverse        /jira       http://jiraserver:8080/jira

    (info) 使用的路径必须与 Tomcat 上下文路径相同。例如,将 /jira 转发到 /jira520 必须使用大量的重写规则,而这些规则有时并不可靠。

  3. 重新启动 Apache。
  4. 进行测试,方法是通过 Apache 访问 JIRA,例如 http://jira.comhttp://atlassian.com/jira

步骤 3:配置 JIRA

  1. 配置 JIRA 选项中所述,将 Use gzip compression 设置为 OFF。众所周知,GZIP 压缩在使用反向代理时会导致性能问题,特别是在代理还压缩流量的情况下更是如此。
  2. 将 Base URL 设置为要通过其访问 JIRA 的 FQDN,例如 http://jira.atlassian.com。同样可参见配置 JIRA 选项
    (warning)只能将 JIRA 配置为响应单个 URL,并且基本 URL(如配置 JIRA 选项中所述)必须与最终用户访问的 URL 一致。配置错误可能会导致 JIRA 内出现严重问题,例如活动流和仪表盘小工具无法正常工作。
  3. 通过在 FQDN 上访问 JIRA 进行测试(例如:https://jira.atlassian.com),确保可以访问 JIRA ,并且所有仪表盘小工具都能正确显示。

故障排除

Include Page
对 Apache 进行故障排除
对 Apache 进行故障排除

另请参见