JIRA 端口和 Apache 反向代理

JIRA 端口和 Apache 反向代理

我正在尝试使用 Apache 和与 JIRA 捆绑在一起的 Tomcat 实例设置反向代理。我已遵循方向在 JIRA wiki 上完全正确。该网站显示得很好http://ourdomain:8080/jira,所以我知道 Tomcatserver.xml文件已根据他们的指示正确设置。

然而,我无法让 Apache 反向代理工作,尽管读了很多资料,但我仍不明白原因。

我在 Ubuntu 上运行 Apache2.2,当然启用了 mod_proxy 和 mod_proxy_http。网站default运行正常;我的网站配置只是它的修改版本。以下是我的jira虚拟主机配置/etc/apache2/sites-enabled/jira

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    ServerName ourdomain.com

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

    # JIRA Proxy Configuration
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests       Off
    ProxyPreserveHost   On
    ProxyPass           /jira      http://ourdomain.com:8080/jira
    ProxyPassReverse    /jira      http://ourdomain.com:8080/jira
</VirtualHost>

当我在浏览器中访问该网站时,我得到了一个404 未找到使用以下(标准)文本:

此服务器上未找到请求的 URL /jira


ourdomain.com 端口 80 上的 Apache/2.2.22 (Ubuntu) 服务器

同时,输出apachectl -S为:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
     default server ourdomain.com.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost ourdomain.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost ourdomain.com (/etc/apache2/sites-enabled/jira:1)

因此,我可以在 正常访问该网站,ourcomain.com:8080/jira但不能在 访问ourdomain.com/jira

最后一行可能表明了问题 - 它是否应该监听port 8080,并且我是否应该更改上面的 vhost 条目?

显然我有问题,但我没有看到;我的配置出现与 JIRA wiki 上的说明完全匹配。如果能得到帮助,我将不胜感激。我在这里浏览了其他几个答案,但都没有成功。

答案1

ServerName ourdomain.com在 中有一个/etc/apache2/sites-enabled/000-defaultServerName ourdomain.com在 中有一个/etc/apache2/sites-enabled/jira000-default第一个优先,因为它按字母顺序排在第一位;您的 jira 配置未被使用。

更改文件ServerName ourdomain.com中的行000-default,或者如果您不使用它,那么只需a2dissite default

答案2

尽管通过代理连接到安全站点,我还是按照几乎相同的方式设置了我们的 JIRA。

我发现我的配置和你的配置之间的唯一区别是我保留了现有的 /etc/apache2/sites-enabled/000-default:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

但随后添加了一个新文件 /etc/apache2/sites-enabled/jira-mod_proxy,其中包含

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

SSLProxyEngine on
ProxyRequests       Off
ProxyPreserveHost On
ProxyPass           /jira       https://localhost:8443/jira
ProxyPassReverse    /jira       https://localhost:8443/jira

如果忽略我用于 SSL 的 8443 端口,那么我能看到的唯一区别是

  1. 使用 localhost 而不是 FQDN,但这并不重要,因为你可以访问你的网站,所以http://ourdomain:8080/jiratomcat 显然正在监听你的真实 IP 地址

  2. <Proxy>在元素外部进行配置<VirtualHost>

因此也许代理配置需要位于虚拟主机设置之外?

相关内容