運行 Confluence 6 在 SSL 配置後的 NGINX

這個頁面描述瞭如何爲 Confluence 配置 NGINX 的反向代理html

這個頁面中的配置結果將會影響到下面 2 個配置狀況:nginx

  • 外部客戶鏈接到 NGINX 使用安全的 SSL。在 NGINX 和 Confluence 服務器之間的鏈接不是安全的。
  • Confluence 服務器和 NGINX 運行在同一個機器中。

咱們假定你已經運行了 NGINX 實例。若是你尚未安裝運行 NGINX 實例,請參考 NGINX documentation 文檔中的內容來下載安裝 NGINX。SSL 的證書也必須安裝到 NGINX 運行的服務器上。你須要安裝支持 WebSockets  的 NGINX 版本(1.3 或者後續版本)。git

若是你的項目小組還計劃使用 Confluence 的移動 app 版本,你還須要讓你的證書從 CA(Certificate Authority) 授信。你不能在你的移動 APP 上使用本身簽發的證書或者沒有從 CA 授信的證書。github

Atlassian Support 不能提供有關第三方工具的配置,例如 NGINX。若是你在配置的時候遇到了任何問題,請參考 NGINX 的文檔,或者訪問 Atlassian Community 或者從咱們的 Solution Partner 合做夥伴處得到幫助。apache

1:設置上下文路徑

(warning) 若是你不但願經過上下文來訪問你的 Confluence 安裝實例(www.example.com),或者你是直接經過子域名來訪問的(confluence.example.com),你能夠跳過這一步的配置。安全

在 Tomcat 中設置你 Confluence 應用程序的路徑(位於主機名和端口後的路徑)。編輯 <installation-directory>/conf/server.xml,這部份內容在 "Context" 中定義:服務器

<Context path="" docBase="../confluence" debug="0" reloadable="false">session

而後修改成:app

<Context path="/confluence" docBase="../confluence" debug="0" reloadable="false">ide

在這個示例中,咱們已經使用了 /confluence 爲上下文的路徑。請注意,你不能使用 /resources 爲你的上下文路徑,由於在 Confluence 中使用這個路徑用於定位資源,若是你使用這個路徑的話將會在後面致使錯誤。

重啓 Confluence,而後檢查你是否能夠訪問 http://example:8090/confluence

2:配置 Tomcat 鏈接器

在相同的 <installation-directory>conf/server.xml 文件中,使用示例的鏈接器爲啓動點。

註釋掉默認的鏈接器(針對不須要代理的訪問)。

Show me how to do this...

取消  HTTPS - Proxying Confluence via Apache or Nginx over HTTPS 中間的註釋。

Show me how to do this...

插入你的 代理名(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="https" secure="true" proxyName="www.example.com" proxyPort="443"/>

請肯定你已經爲你的協議和代理名稱配置了爭取的值。

3:配置 NGINX

你須要在你的的 NGINX 服務器中指定一個監聽服務器,以下面的示例內容。同時添加下面的內容到你的 NGINX 配置中。

替換你 SSL 證書和 key 爲你的服務器名稱。

在這個示例中,用戶將要鏈接到 Synchrony,這個服務運行直接協做編輯。

server {

listen www.example.com:80;

server_name www.example.com;

 

listen 443 default ssl;

ssl_certificate     /usr/local/etc/nginx/ssl/nginx.crt;

ssl_certificate_key /usr/local/etc/nginx/ssl/nginx.key;

 

ssl_session_timeout  5m;

 

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-

POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:

ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-

AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-

AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-

ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-

RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-

SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-

SHA:!DSS';

ssl_prefer_server_ciphers   on;

 

location /confluence {

client_max_body_size 100m;

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://localhost:8090/confluence;

}

location /synchrony {

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://localhost:8091/synchrony;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "Upgrade";

}

}

請參考 https://nginx.org/en/docs/http/ngx_http_proxy_module.html 來得到更多的信息。

備註:若是你如今正在配置 SSL 和 Confluence 到一個相同的服務器上,如上面的內容所示,請不要包含 ssl 配置。

若是你不肯定在那裏包含 ssl_ciphers,請參考頁面 https://mozilla.github.io/server-side-tls/ssl-config-generator/ 中的內容,這裏的內容能很是有用。

若是你遇到了 413 Request Entity Too Large 的錯誤,請肯定 /confluence 中的 client_max_body_size 塊內容與 Confluence 的 maximum attachment size 配置的大小是相同的。若是你在對大頁面進行編輯的時候遇到了錯誤,你可能還須要增長 /synchrony 中配置的 client_max_body_size 大小。

若是你計劃使用 Confluence 的移動 app...

若是你經過子域名來訪問 Confluence ...

4:重啓 Confluence 和 NGINX

  1. 重啓 Confluence 和 NGINX 來讓配置生效。
  2. 更新 Confluence 的基礎 URL 來肯定你在上下文問中設置的路徑,請參考 Configuring the Server Base URL 頁面中的內容。

https://www.cwiki.us/display/CONF6ZH/Running+Confluence+behind+NGINX+with+SSL

相關文章
相關標籤/搜索