雑記

nextcloud用nginxリバースプロキシ

症状

適当に設定を流用していたら、ファイルを全て転送し切る前に権限エラーが出てしまった。
ローカルアクセスだと出ないので、リバースプロキシを挟んだことでの問題だと思われた。

設定
server {
    # 対象のドメインを指定(asaino.net または www.asaino.net )
    server_name storage.asaino.net;

    # HTTPS(SSL/TLS)をリスンする
    listen 443 ssl; # managed by Certbot

    # Let's Encrypt で取得したSSL証明書を指定
    ssl_certificate /etc/letsencrypt/live/asaino.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/asaino.net/privkey.pem; # managed by Certbot

    # Certbot によるSSLの追加オプション(推奨設定)
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

    # SSLの強化(Diffie-Hellman鍵交換を有効にする)
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    location / {
        # リバースプロキシ先のサーバー
        proxy_pass https://192.168.11.100;

        # クライアントの元のIPアドレスをX-Forwarded-Forヘッダーに追加
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # クライアントがリクエストしたホスト名を保持
        proxy_set_header Host $http_host;

        # クライアントが使用したプロトコル(HTTP/HTTPS)を保持
        proxy_set_header X-Forwarded-Proto $scheme;

        # nextcloud用
        proxy_buffering off;
        client_max_body_size 10G;
        proxy_request_buffering off;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        proxy_read_timeout 600;
        send_timeout 600;
    }
}

server {
    # HTTPリクエストをすべてHTTPSにリダイレクト
    listen 80;
    server_name storage.asaino.net;
    return 301 https://$host$request_uri;
}
その他
  • リバースプロキシ側でSSLしても、Nextcloudクライアントから文句を言われるので、Nextcloud側でもSSLしないといけない
  • 容量が足りないと権限エラーになるっぽい
  • ローカルのHDDを接続すると、キャッシュで詰まって時々速度が0になる
    そういうものなのか…?
  • ローカルHDDを許可するコマンドsudo snap connect nextcloud:removable-media

コメント