在搜索了幾個小時后,在 Apache 反向代理之后運行 Gitlab 的解決方案。需要明確的是,我可以連接到 Gitlab 實體,還可以執行所有基本功能,例如推送、克隆代碼等。
我的問題是,我在 Issue 中發布的每張圖片都始終以http://127.0.0.1:8090/.../作為 URL。我嘗試更改 external_url 這總是導致 Gitlab 以 502 回應。我更改和嘗試的任何其他設定要么沒有效果,要么導致 500 或 503。我決定向你們中的任何人尋求提示。
我目前的配置是:/etc/gitlab/gitlab.rb
external_url 'http://127.0.0.1:8090'
gitlab_rails['time_zone'] = 'Europe/Berlin'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.server.de"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "mail.server.de"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_display_name'] = 'NoReply Server'
gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
gitlab_rails['gitlab_default_theme'] = 2
letsencrypt['enable'] = false
/etc/apache2/sites-available/gitlab.conf
<VirtualHost *:443>
ServerName gitlab.server.de
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /.well-known/acme-challenge !
ProxyPass / http://127.0.0.1:8090/ retry=0
ProxyPassReverse / http://127.0.0.1:8090/
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/gitlab.server.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/gitlab.server.de/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
你們能幫我嗎?提前致謝。
uj5u.com熱心網友回復:
將您設定external_url為用戶用于訪問 GitLab 服務器的 URL。例如gitlab.server.de,根據您的 Apache 配置。
此外,如果您不使用雙向 TLS,您需要修復代理標頭以處理協議更改。
最重要的是,您需要明確配置 GitLab 的內部 nginx 以偵聽您在代理/代理密碼配置中指定的埠,而不是使用 https。
所以,像這樣:
external_url "https://gitlab.server.de"
# set listen port explicitly, required when using non-default port
# and port is not specified in external_url
nginx['listen_port'] = 8090
# disable https listener, since Apache is setup for SSL/TLS termination
nginx['listen_https'] = false
# technically optional, set proxy headers
nginx['proxy_set_headers'] = {
"X-Forwarded-Proto" => "http",
"X-Forwarded-Port" => "80"
}
同樣重要的是要注意 GitLab 本身應該能夠使用它的external_url. 換句話說,您的 Apache 服務器應該 (1) 可以被主機上的 DNS 決議,并且 (2) 可以從 GitLab 訪問。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/429732.html
下一篇:如何將其分成兩個檔案?
