Перенаправить HTTP TO HTTPS для настраиваемого порта HTTPS для Omnisus Gitlab с Docker Compose - PullRequest
0 голосов
/ 28 июня 2018

У меня есть новейшее изображение Omnibus GitLab Docker, и docker-compose.yml выглядит так:

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'some_ip'
  container_name: 'some_name'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://some_ip'
      gitlab_rails['gitlab_shell_ssh_port'] = 4381
      nginx['redirect_http_to_https'] = true
      nginx['redirect_http_to_https_port'] = 80
  ports:
    - '6312:443'
    - '4381:22'
  volumes:
    - '/srv/gitlab/config:/etc/gitlab'
    - '/srv/gitlab/logs:/var/log/gitlab'
    - '/srv/gitlab/data:/var/opt/gitlab'

При доступе к https://some_ip:6312 работает нормально, но для some_ip: 6312 отображается:

400 Неверный запрос Простой HTTP-запрос был отправлен на HTTPS-порт nginx

Причина очевидна, но как обойти это? Должен ли я установить ssl off для nginx, если так, как мне сделать это для образа Docker?

Я пробовал разные комбинации добавления следующих строк, но безуспешно:

nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
gitlab_rails['gitlab_https'] = false
gitlab_rails['gitlab_port'] = 443
nginx['ssl'] = 'off'
nginx['listen_port'] = 443
nginx['listen_https'] = false

EDIT: Вкратце: я хочу, чтобы пользователь, который подключается к сайту через some_ip:6312 или http://some_ip:6312, был перенаправлен с на https://some_ip:6312.

1 Ответ

0 голосов
/ 28 июня 2018

Невозможно запустить http и https на одном и том же порту

https://askubuntu.com/questions/860511/is-it-possible-to-set-same-port-work-with-http-and-https

Когда вы используете https://domain/, порт автоматически принимается за 443, а в случае http://domain/ принимается за 80. Так что они оба работают на разных портах.

...