有时候觉得使用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 就可以使用了。