背景
在通过https安装Nextcloud的自托管示例(可在以下位置访问:https://localhost:81(和tor)),我在运行自托管GitLab示例时遇到一些问题。
local output
output=$(sudo docker run --detach \
--hostname "$GITLAB_SERVER" \
--publish "$GITLAB_PORT_1" --publish "$GITLAB_PORT_2" --publish "$GITLAB_PORT_3" \
--name "$GITLAB_NAME" \
--restart always \
--volume "$GITLAB_HOME"/config:/etc/gitlab \
--volume "$GITLAB_HOME"/logs:/var/log/gitlab \
--volume "$GITLAB_HOME"/data:/var/opt/gitlab \
-e GITLAB_ROOT_EMAIL="$GITLAB_ROOT_EMAIL_GLOBAL" -e GITLAB_ROOT_PASSWORD="$gitlab_pwd" -e EXTERNAL_URL="http://127.0.0.1" \
"$gitlab_package")
与:
GITLAB_SERVER="127.0.0.1"
GITLAB_SERVER_HTTP_URL="http://$GITLAB_SERVER"
GITLAB_PORT_1="443:443"
GITLAB_PORT_2="80:80"
GITLAB_PORT_3="23:22"
我收到输出:
docker: Error response from daemon: driver failed programming external connectivity on endpoint gitlab (426dd7fa772f5250531ca478760080f981287048023b356bfa0e98f16db347f9): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use
我知道这意味着一些进程已经在端口443上运行了,我写了一个方法来杀死在这些端口上运行的所有进程,但是,httpd
进程不断地重生。因为我是在Ubuntu 22.04的新安装上这样做的,所以我假设这是Nextcloud进程不断地重生。所以我可以杀死并删除Nextcloud,但是这违背了目的。
问题
因此,我想问一下,如何通过HTTPS在同一台设备上同时托管Nextcloud和GitLab?
注解
我知道在写这篇文章的时候GitLab服务器仍然显示http
而不是https
,我还没有切换到https
,因为我首先遇到了这个错误。
我假设两者都需要在端口443上/通过端口443访问,因为它们都可以通过https
使用自签名SLL
证书访问。
1条答案
按热度按时间wljmcqd81#
为此,您可以用途:
gitlab.rb
中的部分并放置nexcloud配置/etc/nginx/conf.d/nexcloud.conf
这将帮助您在同一个443端口上进行所有配置。然后您可以检查配置