I am trying to enable gitlab pages with no luck. It kind of worked once but from one point the pages link on settings menu disappeared and not working anymore.
I have a 13.10.2-ee running behind a custom nginx proxy. I’ve tried to configure pages with the minimum configuration and added the vhost to nginx. The daemon seems to be running but gitlab apparently does not detect it
The pipeline runs ok and generates the oublic folder with just an index.html
This is the .gitlab-ci
pages:
stage: deploy
script:
- mkdir .public
- cp -r * .public
- mv .public public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
I tried a lot of configurations on gitlab.rb but none worked for me. Could someone give me more clarity on this?
My vhost for my nginx:
server {
listen 0.0.0.0:80;
server_name gitpages.rigi.tech;
access_log /var/log/nginx/gitlab_pages_access.log;
error_log /var/log/nginx/gitlab_pages_error.log;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache off;
proxy_pass http://localhost:8090/;
}
error_page 403 /403.html;
error_page 404 /404.html;
}
Thanks!
Hi @cnp1984
this is my GitLab Pages related config in gitlab.rb
pages_external_url "https://pages.example.com"
gitlab_pages['enable'] = true
gitlab_pages['status_uri'] = "/@status"
gitlab_pages['listen_proxy'] = "127.0.0.1:8090"
pages_external_url
must point to your domain gitpages.rigi.tech
1 Like
Here is the GitLab managed Nginx config for Pages with HTTPS and HTTP redirect.
# This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.
## Lines starting with two hashes (##) are comments with information.
## Lines starting with one hash (#) are configuration parameters that can be uncommented.
##
###################################
## configuration ##
###################################
## Redirects all HTTP traffic to the HTTPS host
server {
listen 1.2.3.4:80;
server_name ~^(?<group>.*)\.pages\.example\.com$;
server_tokens off; ## Don't show the nginx version number, a security best practice
return 301 https://$http_host:$request_uri;
access_log /var/log/gitlab/nginx/gitlab_pages_access.log gitlab_access;
error_log /var/log/gitlab/nginx/gitlab_pages_error.log;
}
server {
listen 1.2.3.4:443 ssl http2;
server_name ~^(?<group>.*)\.pages\.example\.com$;
server_tokens off; ## Don't show the nginx version number, a security best practice
## Disable symlink traversal
disable_symlinks on;
## Strong SSL Security
## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/
ssl_certificate /etc/gitlab/server.crt;
ssl_certificate_key /etc/gitlab/server.key;
# GitLab needs backwards compatible ciphers to retain compatibility with Java IDEs
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4';
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_timeout 5m;
## Real IP Module Config
## http://nginx.org/en/docs/http/ngx_http_realip_module.html
## Individual nginx logs for this GitLab vhost
access_log /var/log/gitlab/nginx/gitlab_pages_access.log gitlab_access;
error_log /var/log/gitlab/nginx/gitlab_pages_error.log;
# Pass everything to pages daemon
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Ssl on;
# Prevent NGINX from caching pages in response to the pages `Cache-Control`
# header.
#
# Browsers already respect this directive and Pages can handle the request
# volume without help from NGINX.
#
# If this changes in the future, ensure `proxy_cache_key` is set to a value
# like `$scheme$host$request_uri`, as the default value does not take the
# Pages hostname into account, leading to incorrect responses being served.
#
# See https://gitlab.com/gitlab-org/gitlab-pages/issues/73
proxy_cache off;
proxy_pass http://127.0.0.1:8090;
}
# Define custom error pages
error_page 403 /403.html;
error_page 404 /404.html;
}
1 Like
Thanks to answer.
I tried to configure the same way to see if works but nothing, still the same. I have this now:
pages_external_url = "http://gitpages.rigi.tech/"
gitlab_pages['enable'] = true
gitlab_pages['status_uri'] = "/@status"
gitlab_pages['listen_proxy'] = "127.0.0.1:8090"
After reconfigure and restart i still see the feature as disabled and pages in settings menu does not appear. If i acces to the domain, gitlab returns a 404 page so the daemon retunrs something for that subdomain.
Any idea?
Thanks
Anybody has more ideas? i’m still faecing the issue and it’s being impossible to configure
You can check if your config setup was effective by:
- looking at reconfigure logs - enabling pages should be listed as below:
Recipe: gitlab-pages::enable
* directory[/var/opt/gitlab/gitlab-pages] action create (up to date)
* directory[/var/log/gitlab/gitlab-pages] action create (up to date)
* directory[/opt/gitlab/etc/gitlab-pages] action create (up to date)
...
- checking if http server is present at port 8090
- checking if application.log contains any error
1 Like