Docker compose 使用Docker Compose将Omnisus Gitlab的自定义HTTPS端口的HTTP重定向到HTTPS
我有最新的Omnibus GitLab Docker图像,Docker compose 使用Docker Compose将Omnisus Gitlab的自定义HTTPS端口的HTTP重定向到HTTPS,docker-compose,dockerfile,gitlab-ci,http-redirect,gitlab-omnibus,Docker Compose,Dockerfile,Gitlab Ci,Http Redirect,Gitlab Omnibus,我有最新的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'
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'
访问时,它工作正常,但对于某些ip:6312,它会显示:
400错误请求普通HTTP请求已发送到HTTPS端口nginx
原因是显而易见的,但如何避免呢?我必须为nginx设置ssl关闭
,如果是,如何为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
编辑:
简而言之:我想要的是通过
some\u ip:6312
或http://some_ip:6312
,将重定向到https://some_ip:6312
不可能在同一端口上运行http
和https
当您使用
https://domain/
端口自动假定为443
,如果http://domain/
假定为80
。所以它们实际上都在不同的端口上运行 我知道,我已经说过,很明显HTTP请求被发送到HTTPS端口,这是行不通的。查看我的编辑。让我检查一下,但我仍然怀疑是否可以在自定义端口上执行重定向。您需要在前面放置另一个nginx,并使用普通端口80和443。为什么自定义端口会出现问题?这是nginx特有的吗?