Pages not working - blank pages and times out

Hi all,

We’re trying to setup GitLab pages on a private, working GitLab instance (CentOS 7.6, GitLab 12.1.6) and while working on it for 2 days now, we can’t get it to work. We’ve read the documentation here:

and are working with option 1: Run the Pages daemon in the same server as GitLab, listening on a secondary IP. Both the GitLab instance and our Pages configuration is on the same server.

  • We’ve got an exclusive subdomain gitlab.ourdomain.com for our GitLab instance, running on our primary IP 10.15.60.222.
  • We’ve got an exclusive subdomain gitlab-pages.ourdomain.com for Pages, running on our secondary IP 10.15.60.223.
  • We’ve added a wildcard DNS A record for *.gitlab-pages.ourdomain.com pointing to our primary IP 10.15.60.222. Initially we thought it had to point to the secondary IP but after rereading the above link, we think it should be primary (?). In any case: we’ve tested with both

Below is our Pages config from /etc/gitlab/gitlab.rb. To not complicated things more than necessary, we’re trying to get it working on http only/first.

################################################################################
## GitLab Pages
##! Docs: https://docs.gitlab.com/ce/pages/administration.html
################################################################################

##! Define to enable GitLab Pages
pages_external_url "http://gitlab-pages.ourdomain.com/"
gitlab_pages['enable'] = true

##! Configure to expose GitLab Pages on external IP address, serving the HTTP
gitlab_pages['external_http'] = ['10.15.60.223:80']

##! Configure to expose GitLab Pages on external IP address, serving the HTTPS
# gitlab_pages['external_https'] = []
# gitlab_pages['cert'] = "/etc/gitlab/ssl/cert.crt"
# gitlab_pages['cert_key'] = "/etc/gitlab/ssl/cert.key"

# gitlab_pages['listen_proxy'] = ['localhost:8090']
# gitlab_pages['redirect_http'] = true
# gitlab_pages['use_http2'] = true
# gitlab_pages['dir'] = "/mnt/GITLAB/gitlab-pages"
# gitlab_pages['log_directory'] = "/var/log/gitlab/gitlab-pages"

##! Prometheus metrics for Pages docs: https://gitlab.com/gitlab-org/gitlab-pages/#enable-prometheus-metrics
# gitlab_pages['metrics_address'] = ":9235"

################################################################################
## GitLab Pages NGINX
################################################################################

# All the settings defined in the "GitLab Nginx" section are also available in this "GitLab Pages NGINX" section
# You just have to change the key "nginx['some_settings']" with "pages_nginx['some_settings']"

# Below you can find settings that are exclusive to "GitLab Pages NGINX"
pages_nginx['enable'] = false
gitlab_rails['pages_path'] = "/mnt/GITLAB/gitlab-pages"

We’ve fiddled A LOT with these settings, as with the Nginx specific settings, but none of them gave other results. All tries are being finalized with a

gitlab-ctl reconfigure
gitlab-ctl restart

by us. All services are running:

run: alertmanager: (pid 35472) 2630s; run: log: (pid 9983) 8937s
run: gitaly: (pid 35488) 2630s; run: log: (pid 9992) 8937s
run: gitlab-monitor: (pid 35508) 2629s; run: log: (pid 9982) 8937s
run: gitlab-pages: (pid 35525) 2629s; run: log: (pid 17345) 7473s
run: gitlab-workhorse: (pid 35543) 2628s; run: log: (pid 9986) 8937s
run: grafana: (pid 35553) 2628s; run: log: (pid 10010) 8937s
run: logrotate: (pid 35644) 2628s; run: log: (pid 9998) 8937s
run: nginx: (pid 35650) 2627s; run: log: (pid 9979) 8937s
run: node-exporter: (pid 35658) 2627s; run: log: (pid 9981) 8937s
run: postgres-exporter: (pid 35665) 2626s; run: log: (pid 10003) 8937s
run: postgresql: (pid 35673) 2626s; run: log: (pid 9984) 8937s
run: prometheus: (pid 35681) 2626s; run: log: (pid 9990) 8937s
run: redis: (pid 35696) 2625s; run: log: (pid 10002) 8937s
run: redis-exporter: (pid 35700) 2625s; run: log: (pid 10011) 8937s
run: registry: (pid 35707) 2624s; run: log: (pid 9987) 8937s
run: sidekiq: (pid 35719) 2624s; run: log: (pid 9977) 8937s
run: unicorn: (pid 35725) 2623s; run: log: (pid 9994) 8937s

For our test, we’ve created a new project as outlined here for instance:

Created a new GitHub CI/CD workflow from the default HTML template and committed it. This is no problem whatsoever since the pipeline completes without an error and looking in our (custom) path at

/mnt/GITLAB/gitlab-pages/MyUser/pages-project/public/

the new files / commits show up as expected.

But when going to our project - Settings - Pages and the URL that is mentioned there, we end up with a blank page and after a while it times out.

Long story short I believe we’ve tried all options and just followed the different (official) GitLab tutorials, but can’t get it to work. As it seems, nothing is being logged in system log and/or gitlab logs, but maybe we’re looking it the wrong place.

What are we doing wrong?

What I think it is missing here:

nginx['listen_addresses'] = ['10.15.60.222']

Manual: GitLab Pages administration | GitLab
Nginx shall listen own IP and gitlab-pages another IP (as it is already configured on that example).

Not sure is it the only thing because I can’t make it work either on the custom domain.