Gitlab pages behind a reverse proxy on a second machine
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=387148)
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=387148)
</details>
<!--IssueSummary end-->
Hello,
I have a working gitlab deployment on machine **A**.
I’d like to add a gitlab pages deployment, hosted on A, but proxied by **B**.
These are the three main points:
1. **pages**, hosted on machine A, is reverse proxied by machine **B**
1. machine B has an nginx reverse proxy that applies the **wildcard ssl certificate**.
1. **authentication** for pages is enabled
**ISSUE:** I have a working setup with points 1+2, which however breaks when I enable authentication (3).
**ERROR:** The procedure breaks when gitlab tries to set the secrets (`gitlab-ctl reconfigure`):
```
* ruby_block[authorize pages with gitlab] action run[2022-12-27T15:22:34+00:00] WARN: Connecting to GitLab to generate new app_id and app_secret for GitLab Pages.
[2022-12-27T15:22:57+00:00] WARN: Something went wrong while executing gitlab-rails runner command to get or create the app ID and secret.
[2022-12-27T15:22:57+00:00] INFO: ruby_block[authorize pages with gitlab] called
```
## Technical details:
- both A and B have 2 eth interfaces, one public and one on a private network
- A public eth serves gitlab
- B public eth has wildcard alias for gitlab pages
- A and B can communicate through the private interface (`192.168.32.0/24`, see addresses below)
### relevant `gitlab.rb` configuration on A:
```
pages_external_url "https://pages.XXX"
gitlab_pages['enable'] = true
## from bug https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/4890#note_261373269
## WHEN I ENABLE AUTHENTICATION IT BREAKS!
gitlab_rails["pages_enabled"] = false
##! Configure to expose GitLab Pages on external IP address, serving the HTTP
gitlab_pages['external_http'] = ['192.168.32.5:82']
gitlab_pages['propagate_correlation_id'] = false
```
### nginx reverse-proxy config on B
```
server {
listen 443 ssl ;
listen [::]:443 ssl ;
server_name ~.*.pages.<omissis>;
location / {
proxy_pass http://192.168.32.5:82;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
ssl_certificate /XXX;
ssl_certificate_key /XXX;
ssl_password_file /XXX;
}
```
Any help appreciated.
issue