时间: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在浏览器不能直接访问,需要在阿里云上添加安全组规则,选择对应区域的服务器-公网入方向 添加 如下两张图:
此时,可以用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?
感觉有些安全上的问题还没考虑到...