繁体   English   中英

通过Apache反向代理访问Jira

[英]Accessing Jira through Apache reverse proxy

我设置了正在运行的Jira Core 7.3.0,并使用以下设置为server.xml:

<Connector  port="8080" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" bindOnInit="false" scheme="https" proxyName="SERVERNAME" proxyPort="443"/>
<Connector  port="8081" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" bindOnInit="false"/>

Jira的“版本”的使用完全是功能性的,并且可以运行。

我将Apache作为反向代理安装后,Jira就与以前不同。 我无法使用现有的Administartor帐户首次登录。 如果我登录jira(没有apache代理)(成功),然后登录到apira替代的jira的“版本”,则可以正常工作。 这非常令人困惑。

我对Apache httpd.conf使用以下设置:

<VirtualHost *:80>
    ServerName SERVERNAME
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
    ServerName SERVERNAME
    ProxyRequests Off
    ProxyVia Off
    <Proxy *>
         Require all granted
    </Proxy>
    SSLEngine On
    SSLProxyEngine On
    ProxyPreserveHost On
    ProxyPass /jira http://localhost:8080/jira
    ProxyPassReverse /jira http://localhost:8080/jira
    SSLCertificateFile C:\Path\to\cert\file.crt
    SSLCertificateKeyFile C:\Path\to\cert\file.key
</VirtualHost>

怎么会这样

您的重写规则不会传递整个原始URL。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html指出:

REQUEST_URI所请求URI的路径部分,例如“ /index.html”。 尤其是,它排除了查询字符串该字符串可作为其自己的名为QUERY_STRING的变量使用。

混淆JIRA的原因是我在上面加粗了。

我成功使用过:RewriteRule(。*) https://% {HTTP_HOST} $ 1 [R,L]

这是一个正常工作且Nessus扫描的配置。 此外,Certbot.eff.org可以帮助您获取免费的Let's Encrypt SSL证书,该证书是此配置的一部分。

除此之外,将Jira中的上下文路径更改为/ jira。 将其他所有内容保留为默认值。

<IfModule mod_ssl.c>
<VirtualHost *:443> 
Timeout 10000
ProxyTimeout 10000
ServerName intranet.mydomain.com
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"  
Header always append X-Frame-Options SAMEORIGIN
ProxyRequests off
ProxyPreserveHost on
ProxyVia off
ProxyPass /jira http://myserver.local:8080/jira
ProxyPassReverse /jira http://myserver.local:8080/jira
RewriteEngine on
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/intranet.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/intranet.mydomain.com/privkey.pem
</VirtualHost> 
</IfModule>

<VirtualHost *:80>
ServerName intranet.mydomain.com
redirect / https://intranet.mydomain.com
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always append X-Frame-Options SAMEORIGIN
ProxyRequests off
ProxyPreserveHost on
ProxyVia off
RewriteEngine on
</VirtualHost>
</IfModule>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM