Gitea Docker版本 綁定自簽憑證by Nginx
當你的Gitea需要綁定SSL時有個快速做法 - 在前面由Nginx當作Proxy負責SSL綁定作業。
以下來教各位快速綁定流程,文章最後會提醒各位
注意事項
!
安裝nginx
sudo apt update
sudo apt install nginx
改gitea port
vi docker-compose.yml把
ports:
- "80:3000"
- "223:22"
ports:
- "3000:3000"
- "223:22"
nginx設定
編輯nginx設定檔 vi /etc/nginx/sites-available/default
server {
listen 443 ssl;
listen 80;
server_name _;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
client_max_body_size 100m;
location / {
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
這個步驟就隨你們自由去操作,我的話是用SCP。
建立資料夾
mkdir /etc/nginx/ssl
搬移憑證檔案
把憑證檔案放到資料夾
mv ./cert.pem /etc/nginx/ssl/cert.pem
mv ./key.pem /etc/nginx/ssl/key.pem
重啟Nginx
nginx -t
systemctl restart nginx
測試綁定憑證結果
curl -k https://$ip
若有網頁內容即ok
怪了!怎麼有時候Git Clone不了?
最好是把 proxy_buffering開啟,避免如果git repo超過10MiB就可能被中斷
以下是我的配置設定,給各位參考。
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k
在此提醒各位!
當你在Gitea前面掛一個Nginx當Proxy時,有時候會忘記前面還有一個Nginx,因為這是之前沒有Nginx,所以習慣只去Gitea查找問題,這是我之前蠻常忘記的盲點,所以當Gitea有什麼問題時,也要把Nginx考慮進去問題發生的原因唷!