From 7d23a4c38f0a258bb754b0b76d2d38307f4b1a22 Mon Sep 17 00:00:00 2001 From: Dennis Mo Date: Sun, 31 Oct 2021 17:11:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8frps=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E4=B8=8A=E9=87=8D=E5=BB=BAgitea=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E3=80=82=E6=95=B0=E6=8D=AE=E5=BA=93=E8=BF=9E=E5=88=B0centos1?= =?UTF-8?q?=E4=B8=8A=E7=9A=84mysql=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gitea/Gitea.projitems | 3 + Gitea/README.md | 76 +++++++++++++---- Gitea/conf.d/gitwoyue.conf | 6 +- Gitea/gitea/docker-compose.yml | 11 +-- Gitea/gitea_nodb/docker-compose.yml | 31 +++++++ Gitea/gitea_nodb/grant-permissions.sh | 3 + Gitea/阿里云跨账号ECS互联.docx | Bin 0 -> 78689 bytes acme/README.md | 2 + acme/acme.projitems | 1 + acme/实例研究1.md | 117 ++++++++++++++++++++++++++ 10 files changed, 227 insertions(+), 23 deletions(-) create mode 100644 Gitea/gitea_nodb/docker-compose.yml create mode 100644 Gitea/gitea_nodb/grant-permissions.sh create mode 100644 Gitea/阿里云跨账号ECS互联.docx create mode 100644 acme/实例研究1.md diff --git a/Gitea/Gitea.projitems b/Gitea/Gitea.projitems index 81f9b21..73bd25c 100644 --- a/Gitea/Gitea.projitems +++ b/Gitea/Gitea.projitems @@ -14,7 +14,10 @@ + + + diff --git a/Gitea/README.md b/Gitea/README.md index e5b9386..26f29c3 100644 --- a/Gitea/README.md +++ b/Gitea/README.md @@ -18,7 +18,7 @@ https://gitea.io/en-us/ 2. 安装docker-compose,参考: CENTOS安装Docker Compose; -3. 完成NginxAndLetsencrypt的部署; +3. 完成NginxAndLetsencrypt的部署(或acme,参看acme项目的实例研究1); ​ 参见相关说明。(包含把sample.conf改名为gitea.conf或其他名字) @@ -28,14 +28,19 @@ https://gitea.io/en-us/ 6. 执行该sh脚本。注意,可以通过tail -2 /etc/passwd和tail -2 /etc/group 查看新注册用户的uid和gid。如和docker-compose.yml中的不符合则应修改yml文件。 -7. 执行 docker inspect nginxdocker_nginx_1 来确定nginx所在网络名称: +7. 执行docker ps来查看当前的docker实例,找到其中的nginx实例: + + ...... + 84e4e7a719e8 nginx:latest "/bin/sh -c 'while :…" 17 months ago Up 5 weeks 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp **nginx_nginx_1** + +8. 执行 docker inspect nginx_nginx_1来确定nginx所在网络名称: ``` "Networks": { - "nginxdocker_default": { + "nginx_firstnet": { ``` -8. 执行 docker network inspect nginxdocker_default 来确定一些网络信息: +9. 执行 docker network inspect nginx_firstnet 来确定一些网络信息: ``` "IPAM": { @@ -43,24 +48,64 @@ https://gitea.io/en-us/ "Options": null, "Config": [ { - "Subnet": "192.168.16.0/20", - "Gateway": "192.168.16.1" + "Subnet": "172.20.0.0/16" } ] }, + ...... + "Containers": { + "84e4e7a719e8a904255ebcb522ce73ff8d0f2340a42d12969cead432ecdf4b77": { + "Name": "nginx_nginx_1", + "EndpointID": "f7a35255526ed39931e018ad27c2bcc448840f77f4de9666baa4416c396c03a7", + "MacAddress": "02:42:ac:14:00:02", + "IPv4Address": "172.20.0.2/16", + "IPv6Address": "" + }, + "e390b8cbe5075efed7fb834acd74fe7ae84cc685249362b4802abb1e626fc909": { + "Name": "frps_server_1", + "EndpointID": "04f759a5e894e9286720946763b123f805c76d869697113e83f53e516ed75c4b", + "MacAddress": "02:42:ac:14:00:03", + "IPv4Address": "172.20.0.3/16", + "IPv6Address": "" + } + }, + ``` -9. 根据上述两点网络相关的信息修改gitea的docker-compose文件中的对应部分,并指定固定IP。 + 可以看到,现有的网段和网络中已有实例的IP。我们可以据此规划gitea实例的IP。 -9. 将需要nginx代理的应用设置的固定IP填入之前的gitea.conf。 +10. 根据上述两点网络相关的信息修改gitea的docker-compose文件中的对应部分,并指定固定IP。 -11. 重启nginx的docker容器。 +11. 将需要nginx代理的应用设置的固定IP填入之前的gitea.conf。 -12. 启动gitea的docker-compose +12. 重启nginx的docker容器。 -13. ``` - docker-compose up -d - ``` + 问题发现:重启失败。查看nginx的日志 + + - 首先是错误:unknown directive "server" + + [root@ngork logs]# tail -20 error.log + 2021/10/29 14:01:25 [emerg] 7#7: unknown directive "?server" in /etc/nginx/conf.d/gitwoyue.conf:1 + + 在开发环境(windows),编码保存为简体中文936解决。原为utf-8。其实,这很奇怪,与一般的认知是相反的。 + + - 然后是open() "/etc/letsencrypt/options-ssl-nginx.conf" failed (2: No such file or directory) in /etc/nginx/conf.d/gitwoyue.conf:22 + + 注释掉即可。 + +13. 启动gitea的docker-compose + + `docker-compose up -d` + +14. 访问网站。初始化 + + 例如,git.woyue.org。 + + 这里,注意参考用到的compose文件,确认用户名是否需要修改(默认git) + + 另外,需要创建一个空的数据库。默认名是gitea。 + + ## 使用说明 - 配置文件在:/srv/gitea/gitea/gitea/conf下的app.ini @@ -71,7 +116,8 @@ https://gitea.io/en-us/ ## 测试环境 * CentOS Linux release 7.3.1611 (Core) - + ``` - ``` \ No newline at end of file + ``` + diff --git a/Gitea/conf.d/gitwoyue.conf b/Gitea/conf.d/gitwoyue.conf index 08bf5fb..2eb0ef1 100644 --- a/Gitea/conf.d/gitwoyue.conf +++ b/Gitea/conf.d/gitwoyue.conf @@ -1,4 +1,4 @@ -server { +server { listen 80; server_name git.woyue.org; server_tokens off; @@ -19,12 +19,12 @@ server { ssl_certificate /etc/letsencrypt/live/git.woyue.org/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/git.woyue.org/privkey.pem; - include /etc/letsencrypt/options-ssl-nginx.conf; + #include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { #ip address below should changed accordingly. - proxy_pass http://192.168.16.5:3000; + proxy_pass http://172.20.0.15:3000; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/Gitea/gitea/docker-compose.yml b/Gitea/gitea/docker-compose.yml index c1ad877..3c83f52 100644 --- a/Gitea/gitea/docker-compose.yml +++ b/Gitea/gitea/docker-compose.yml @@ -4,10 +4,10 @@ version: "3.4" networks: gitea: external: - name: nginxdocker_default + name: nginx_firstnet ipam: config: - - subnet: 192.168.16.0/20 + - subnet: 172.20.0.0/16 services: server: @@ -23,7 +23,7 @@ services: restart: always networks: gitea: - ipv4_address: 192.168.16.15 + ipv4_address: 172.20.0.15 volumes: - ./gitea:/data ports: @@ -42,8 +42,9 @@ services: - MYSQL_DATABASE=gitea networks: gitea: - ipv4_address: 192.168.16.14 + ipv4_address: 172.20.0.14 volumes: - ./mysql/config/my.cnf:/etc/my.cnf - ./mysql/data:/var/lib/mysql - - ./mysql/init:/docker-entrypoint-initdb.d \ No newline at end of file + - ./mysql/init:/docker-entrypoint-initdb.d + - /etc/passwd:/etc/passwd #οhttps://blog.csdn.net/qq_23953717/article/details/106668048 diff --git a/Gitea/gitea_nodb/docker-compose.yml b/Gitea/gitea_nodb/docker-compose.yml new file mode 100644 index 0000000..ed557c0 --- /dev/null +++ b/Gitea/gitea_nodb/docker-compose.yml @@ -0,0 +1,31 @@ + +version: "3.4" + +networks: + gitea: + external: + name: nginx_firstnet + ipam: + config: + - subnet: 172.20.0.0/16 + +services: + server: + image: "gitea/gitea:latest" + environment: + - USER_UID=1000 + - USER_GID=1000 + - DB_TYPE=mysql + - DB_HOST=172.18.184.137:3306 + - DB_NAME=gitea + - DB_USER=nrs + - DB_PASSWD=Whynotfight + restart: always + networks: + gitea: + ipv4_address: 172.20.0.15 + volumes: + - ./gitea:/data + ports: + - "3000:3000" + - "222:22" \ No newline at end of file diff --git a/Gitea/gitea_nodb/grant-permissions.sh b/Gitea/gitea_nodb/grant-permissions.sh new file mode 100644 index 0000000..ba76a6d --- /dev/null +++ b/Gitea/gitea_nodb/grant-permissions.sh @@ -0,0 +1,3 @@ +#!/bin/bash +useradd -M -s /sbin/nologin git +chown -R git:git ../gitea \ No newline at end of file diff --git a/Gitea/阿里云跨账号ECS互联.docx b/Gitea/阿里云跨账号ECS互联.docx new file mode 100644 index 0000000000000000000000000000000000000000..db7aa5147802d12b32a8fc9de3465b6aa98a5a51 GIT binary patch literal 78689 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%0ANq?Y+yeh~r{; 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 IR1xOC08F#+*#H0l literal 0 HcmV?d00001 diff --git a/acme/README.md b/acme/README.md index 84031ea..f5a59cf 100644 --- a/acme/README.md +++ b/acme/README.md @@ -94,6 +94,8 @@ acme.sh --force --debug --issue --dns dns_ali -d nr.woyue.org -d *.nr.woyue.org --fullchain-file /srv/certbot/conf/live/nr.woyue.org/fullchain.pem \ --reloadcmd "docker restart nginx_server" +【2021/10/12】前期就已经重新更新失败。经查,依旧是访问某网址时超时的问题。为此,保持windows服务器的小飞机开启再强制重新更新成功。因此,先持续保留,以观察是否能续签成功。 + (2)frps服务器上的acme更新与证书刷新 记录时间:2021/7/20 diff --git a/acme/acme.projitems b/acme/acme.projitems index 120f180..2c041ce 100644 --- a/acme/acme.projitems +++ b/acme/acme.projitems @@ -9,6 +9,7 @@ acme + diff --git a/acme/实例研究1.md b/acme/实例研究1.md new file mode 100644 index 0000000..46d6c36 --- /dev/null +++ b/acme/实例研究1.md @@ -0,0 +1,117 @@ +## 背景说明 + +a. 研究frps服务器的acme部署情况。 + +​ 时隔久远,重新确认frps服务器的证书安装途径和现状。 + +b. 将gitea部署到现在frps的服务器上。 + +## 确认acme的状态 + +1. 确认当前证书 + + `acme.sh --list` + + [root@ngork ~]# acme.sh --list + Main_Domain KeyLength SAN_Domains CA Created Renew + dev.woyue.org "" *.dev.woyue.org ZeroSSL.com Sat Sep 18 16:42:15 UTC 2021 Wed Nov 17 16:42:15 UTC 2021 + +2. 确认自动更新 + + `crontab -e` + + o1 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null + +3. 查找acme.sh文件 + + `find / -name acme.sh` + + 可以定位到当前服务器,这个文件位于: + + /root/.acme.sh/acme.sh + + 这里要注意,ls是显示不出来.acme.sh的,可以直接cd .acme.sh + +4. 查看.acme.sh目录下的内容 + + [root@ngork .acme.sh]# ls -l + total 240 + -rw-r--r-- 1 root root 315 Sep 19 00:42 account.conf + -rwxr-xr-x 1 root root 205958 Jul 20 11:50 acme.sh + -rw-r--r-- 1 root root 78 May 17 2020 acme.sh.csh + -rw-r--r-- 1 root root 78 May 17 2020 acme.sh.env + drwxr-xr-x 4 root root 4096 Jul 20 11:50 ca + drwxr-xr-x 2 root root 4096 Jul 20 11:50 deploy + drwxr-xr-x 3 root root 4096 May 19 2020 dev.woyue.org + drwxr-xr-x 2 root root 4096 Jul 20 11:50 dnsapi + -rw-r--r-- 1 root root 252 Oct 27 00:41 http.header + drwxr-xr-x 2 root root 4096 Jul 20 11:50 notify + + 其中,account.conf中有阿里云的具有DNS操作权限的账户的key和secret。 + +## 添加证书 + +1. 申请安装证书。加--debug参数可以显示更多细节 + + `acme.sh --debug --issue --dns dns_ali -d git.woyue.org` + +2. 安装完毕后,检验是否配置自动任务 + + `crontab -e` + +3. 确认当前证书 + + `acme.sh --list` + +## 安装证书 + +1. 复制证书: + + `mkdir -p /srv/certbot/conf/live/git.woyue.org` + + `acme.sh --installcert -d git.woyue.org \ + --key-file /srv/certbot/conf/live/git.woyue.org/privkey.pem \ + --fullchain-file /srv/certbot/conf/live/git.woyue.org/fullchain.pem \ + --reloadcmd "docker restart nginx_nginx_1"` + + 注意,最后的nginx_nginx_1或nginx_server为nginx容器的名称。请根据实际情况修改。**或不加此参数,手动重启nginx**。 + +2. 生成:dhparams文件 + + `openssl dhparam -out /srv/certbot/conf/ssl-dhparams.pem 2048` + +## 使用证书 + +例如,要使用上述证书,则nginx的docker对应etc/letsencrypt的目录就是/srv/certbot/conf。比如说,conf文件里引用的密钥文件路径为: + +ssl_certificate /etc/letsencrypt/live/git.woyue.org/fullchain.pem + +那么,docker mount的路径就应该是:-v /srv/certbot/conf:/etc/letsencrypt + +为此,检查一下当前的nginx的volume: + +`docker inspect nginx_nginx_1` + +能看到: + +...... + + "Mounts": [ + ...... + { + "Type": "bind", + "Source": "/srv/certbot/conf", + "Destination": "/etc/letsencrypt", + "Mode": "rw", + "RW": true, + "Propagation": "rprivate" + }, + +...... + +可见,当前的nginx docker实例配置已经满足要求。 + +## 后续 + +参看Gitea项目的Readme。 +