🎉 从头到尾部署 Git 平台,涉及 Linux 基本操作(下载与解压文件、安装软件、创建用户等)、ECS 购买、Xshell、Git 服务安装和后台启动、Nginx 站点配置或正向代理、域名解析、SSL 和 Gzip 等。
最终实现效果如下:
关于 Linux
目录说明
目录
描述
/boot
存放的启动 Linux 时使用的内核文件,包括连接文件以及镜像文件。
/etc
存放所有系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
/bin
bin 是 Binaries(二进制文件) 的缩写,存放着最常用的程序和指令。
/dev
Device(设备)的缩写, 存放的是 Linux 的外部设备。
/mnt
临时挂载别的文件系统的,例如我们可以将光驱挂载在 /mnt/
上,然后进入该目录就可以查看光驱里的内容了。
/tmp
tmp 是 temporary(临时) 的缩写,这个目录是用来存放一些临时文件的。
/root
系统管理员的用户主目录。 该目录为系统管理员,也称作超级权限者的用户主目录。
/home
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/usr
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/var
var 是 variable(变量) 的缩写,存放经常修改的数据,比如程序运行的日志文件目录是 /var/log
。
购买 ECS Aliyun ,香港的不用备案。
配置规则
进行链接 a. 通过普通的命令行工具。
b. 通过官方的 Workbench。
c. 推荐 Xshell 。
安装 Git 😎 Ubuntu 中管理软件的命令是 apt,Centos 中是 yum,下面将以 Ubuntu 举例。
1 2 3 4 5 apt --help apt update apt install git git --version
创建用户 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 who whoami w ls /homeuserdel ifer adduser ifer su ifer cd ~pwd ls
下载文件 1 2 3 4 5 6 7 8 9 10 wget https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz ls tar -xzvf gogs_0.11.91_linux_amd64.tar.gz ls
启动 Gogs 1 2 3 4 5 6 7 8 9 10 11 cd gogscurl ip.sb ./gogs web http://121.40.238.160:3000
注册账号
后台启动
修改配置 1 2 3 4 5 6 7 su ifer cd ~pwd cd gogs/custom/confls vim app.ini
🐞 新建的仓库,期望去掉 README 中的端口号,处理如下。
🐞 处理图片出不来的问题,解决如下。
1 2 3 [picture] DISABLE_GRAVATAR = true ENABLE_FEDERATED_AVATAR = true
🐳 重启 Gogs。
1 2 3 4 5 6 cd ~ps -ef | grep gogs kill 18846ls cd gogs nohup ./gogs web &
安装 Nginx 1 2 3 4 5 6 7 8 9 yum list | grep nginx whereis nginx /usr/sbin/nginx ps -C nginx -o pid
域名解析
配置 Nginx 1 2 3 4 5 6 7 whereis nginx cd /etc/nginx ls mkdir vhostscd vhosts ls vim zhihur.conf
1 2 3 4 5 6 7 8 9 10 11 12 server { listen 80; server_name zhihur.com; location / { proxy_pass http://127.0.0.1:3000; index index.html index.htm; } }
1 2 3 4 5 6 cat zhihur.confcp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak cd /etc/nginx/vim nginx.conf
1 2 3 4 5 http { include /etc/nginx/vhosts/*.conf; include /etc/nginx/conf.d/*.conf; }
1 2 nginx -t nginx -s reload
配置 SSL 基本流程:购买证书 => 申请证书 => DNS 验证(添加记录集) => 再次 DNS 验证 => 下载签发后的证书。
华为云
阿里云
阿里云 (不必把证书添加到记录集)。
1 2 3 4 5 6 mkdir -p /etc/nginx/vhosts/certcd /etc/nginx/vhosts/certvim /etc/nginx/vhosts/zhihur.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 server { listen 443 ssl; server_name zhihur.com; ssl_certificate vhosts/cert/zhihur.com.pem; ssl_certificate_key vhosts/cert/zhihur.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:3000; index index.html index.htm; } } server { listen 80; server_name zhihur.com; rewrite ^(.*)$ https://$host$1 ; location / { index index.html index.htm; } }
1 2 nginx -t nginx -s reload
配置 Gzip nginx.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 events { use epoll; worker_connections 51200; multi_accept on; } http { gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml image/jpeg image/gif image/png text/css text/javascript text/plain text/xml; gzip_vary on; gzip_disable "MSIE [1-6]\." ; }