阿里云+CentOS+Docker+Gogs 记录

时间:2018-04-12

地点:长沙

人物:lieyunye

起因

         公司使用的git第三方服务只允许5人协作者!!!让我们5个人加一个管理员如何相处,那么还是把管理员踢出去吧

经过

          阿里云测试服务器上已经安装好了docker、nginx、git,前人栽树2333

1、 启动docker:    service docker start   下载gogs镜像:docker pull gogs/gogs

2、创建一个目录来存放gogs的仓库和配置文件,一般会放在/var目录下 mkdir gogs

3、安装gogs:docker run --name=gogs -p 30022:22 -p 30080:3000 -v /var/gogs:/data gogs/gogs

4、docker ps看一下gogs有咩有启动、可能还会用到docker start gogs 、docker stop gogs 、docker rm gogs 

⚠️ run命令执行后可以看到gogs日志在终端实时显示,在浏览器打开ip+30080访问并配置gogs,如果有什么错误也可以在此时看到;30022是ssl port 30080是http port

⚠️gogs配置的ssh端口号是30022 http端口号依然是3000,应用URL是域名或者ip+port

这有个坑:ip+port要写成//ip+port,如果是域名则写成https://xxx.xxx.xxx

⚠️因为是在阿里云,所以ip+port在浏览器不能直接访问,需要在阿里云上添加安全组规则,选择对应区域的服务器-公网入方向 添加 如下两张图:

阿里云+CentOS+Docker+Gogs 记录_第1张图片
阿里云+CentOS+Docker+Gogs 记录_第2张图片


此时,可以用ip+port访问gogs了,但是也还想用域名来访问:https://git.xxx.com

配置nginx来支持https访问,配置如下

upstream githost {

        server localhost:30080;

 }

server {

listen      443;  #ssl端口 

                server_name  git.xxx.com;

server_name_in_redirect off;#服务器名称重定向:关

#为一个server{......}开启ssl支持 

ssl                  on;

                access_log 

#指定PEM格式的证书文件   

ssl_certificate     

#指定PEM格式的私钥文件 

ssl_certificate_key 

#charset koi8-r;

          location / {

                proxy_pass  http://githost;

          }

}

  强制http跳转https

server {

listen      80;

                server_name  git.xxx.com;

server_name_in_redirect off;#服务器名称重定向:关

#为一个server{......}开启ssl支持 

                access_log 

                return      301 https://$server_name$request_uri;         

          location / {

                proxy_pass  http://githost;

          }

}

此时,就可以用域名访问了

结果:

遇到的问题:

first path segment in URL cannot contain colon

How config the HTTPS?

感觉有些安全上的问题还没考虑到...

你可能感兴趣的:(阿里云+CentOS+Docker+Gogs 记录)