在自己的ecs上面架设gogs,以及https跳转

有时候觉得使用github和gitee 觉得不方便,像自己架设一个git仓库,百度了一下 gogs架设简单,支持中文,比较适合我这个新手,那就是他了。开搞。

  • 进入自己的阿里云服务器 我自己的是乌班图 18.04
  • apt-get update
  • apt-get install git
  • cd 到自己的目录下 我的是 test
  • 下载 wget https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz
  • 解压 tar -xvf gogs_0.11.91_linux_amd64.tar.gz
  • cd gogs
  • mkdir data 创建文件目录
  • mkdir log 日志文件目录
  • mkdir rootdir 根目录地址

安装配置gogs

  • 在gogs目录下
  • ./gogs web
  • gogs 默认的端口号为3000 浏览器输入 ip:3000才能访问 ,首次进入如下界面
    在这里插入图片描述
    在这里插入图片描述
  • 我自己用 数据库选的是sqlite3 数据库文件在刚才创建的data文件夹下
  • 仓库目录是刚才创建的rootdir 绝对路径拷贝进去
  • 运行系统用户 我写的root
  • 域名填写ecs的外网IP地址
  • http端口号 3000
  • 应用url 也是自己的外网ip:3000
  • 日志路径是刚才创建的log文件夹的绝对路径
  • 创建一个管理员账号
  • 立即安装
  • 安装完成之后 自动跳转
  • 但是如果阿里云服务器安全组 没有开通3000端口 是访问不了

NGINX 反向代理

到现在为止,访问要加端口号3000,太low了

  • apt-get install nginx
  • cd /etc/nginx/sites-avilable
  • touch gogo_config
    编辑内容
server{
    server_name jys1984.com;
    listen 80;
    location / {
        proxy_pass http://jys1984.com:3000/;
        proxy_redirect default;
    }
}

启动配置文件

  • cd /etc/nginx/sites-enabled
  • ln -s ../sites-available/gogs_config
  • service nginx restart
    现在 直接输入服务器名 就可以直接访问我的git服务器了

后台启动

直接在 gogs 文件夹下运行 ./gogs web 直接能运行服务器,但是关闭之后。命令窗口 服务也会关掉

  • nohup ./gogs web &
  • 会报一个错误,没有nohup.out文件,不用管直接回车,程序是会运行的
  • 这时候关掉命令窗口也没有问题

关于重启

由于gogs默认端口是3000 查询端口进程

  • lsof -i:3000
    在这里插入图片描述
    我的进程是10019
  • kill -9 10019
  • 然后在重启就可以了

HTTP跳转HTTPS

  • 在阿里云申请ssl免费证书一年
  • 下载证书 nginx版本
  • 将下载证书 解压 得到 后缀为.key 和.pem 文件
  • 在nginx 安装目录下 我的在 /etc/nginx/ 新建一个文件夹为 ecrt
  • 将刚才的证书文件 上传到ecrt文件夹
  • cd /etc/nginx/sites-available/
  • 找到gogs_config
  • 从新设置文件内容,设置80端口server
server {
    listen 80;
    #将localhost修改为您证书绑定的域名,例如:www.example.com。
    server_name www.jys1984.com; 
    rewrite ^(.*)$ https://$host$1 permanent;    #将所有http请求通过rewrite重定向到https。

}
  • 如果想直接输入jys1984.com 也跳转 需要在配置一个server 把server_name 设置为 jys1984.com
  • 配置 443端口 server
server {
listen 443 ssl;
server_name jys1984.com;
root html;
index index.html index.htm;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
ssl_certificate cert/www.jys1984.com.pem;   #将cert/www.jys1984.com.pem替换成您证书的文件名。
ssl_certificate_key cert/www.jys1984.com.key;   #将cert/www.jys1984.com.key替换成您证书的密钥文件名。
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
location / {
    proxy_pass http://jys1984.com:3000/;
    proxy_redirect default;
index index.html index.htm;
}
}
  • 设置完重定向之后 保存
  • cd /usr/sbin
  • ./nginx -s reload
    如果出现[error] invalid PID number "" in "/run/nginx.pid" 错误
  • 输入 ./nginx 启动一下
  • 如果 还是报这个错误
  • lsof -i:80
  • 把所有的pid 关闭一下
  • 然后再 ./nginx 一下
  • 就可以访问了

ps: 新手通过上面总结

  • 每次修改gogs_config配置文件之后 保存,重启,
  • 80 端口 带www 和不带www 是两个域名 但是 443 就只需要设置一个不带www的域名就可以了 ,可能是封装好了
  • nginx 好像是在 /ect/nginx/sites-avilable里面创建配置文件 然后在/ect/nginx/sites-enabled里创建一个软连接 ,重启nginx 就可以使用了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值