Forgejoをnginxのreverse-proxyからforwardして動かす時にsubpathを用いる設定手順
このエントリでは、
nginxのreverse-proxyの後ろで、Forgejoを動かすときの設定メモを残しておきます。
Forgejoのセットアップは、以下の手順で行った想定で記載します。
UbuntuLinuxにForgejoをセットアップする手順
https://takemikami.com/2024/0318-ubuntulinuxforgejo.html
試した環境:
- Ubuntu Linux 22.04.3
- nginx 1.18.0
- Forgejo 1.21.7
基本的には、以下の公式の説明通りです。
Reverse proxy | Forgejo
https://forgejo.org/docs/latest/admin/reverse-proxy/
Forgejoでsubpathを有効にする
http://example.com:3000/
のようなURLで利用しているForgejoを、http://example.com/forgejo/
のようなURLで利用したいとします。
http://example.com/forgejo/~
をnginxで受けて、http://127.0.0.1:3000/~
にForwardするようにします。
この時に返却されるHTML内のリンクは、http://example.com/forgejo/~
を向いている必要があるので、
「ROOT_URL」を設定を次のように変更します。
/var/lib/forgejo/custom/conf/app.ini
※省略※
[server]
ROOT_URL = http://example.com/forgejo/
※省略※
nginx側のreverse-proxy設定
nginx側の設定は、先ほど記載したように、http://example.com/forgejo/~
→http://127.0.0.1:3000/~
とForwardするので、
次のようになります。
/etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
※途中省略※
location /forgejo/ {
rewrite ^ $request_uri;
rewrite ^/forgejo(/.*) $1 break;
return 400;
proxy_pass http://127.0.0.1:3000$uri;
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
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 $scheme;
}
}
以上。