GitLab always Redirects to HTTPS

Solution 1:

The external_url has to be set in GitLab only http, https will be enabled on your reverse proxy:

external_url 'http://gitlab.example.com'

Do not forget to reconfigire Gitlab after making changes.

gitlab-ctl reconfigure

In your reverse proxy set:

proxy_pass http://192.168.178.63:8888

Solution 2:

GitLab does support reverse proxies, even when you configure external_url with HTTPS.

By default, Omnibus GitLab auto-detects whether to use SSL if external_url contains https:// and configures NGINX for SSL termination. However, if configuring GitLab to run behind a reverse proxy or an external load balancer, some environments may want to terminate SSL outside the GitLab application. To do this, edit /etc/gitlab/gitlab.rb to prevent the bundled NGINX from handling SSL termination:

nginx['listen_port'] = 80
nginx['listen_https'] = false

See the docs for more details.