Skip to content

Instantly share code, notes, and snippets.

@mamemomonga
Last active July 13, 2024 09:44
Show Gist options
  • Save mamemomonga/dadb1f72e5a2b6cbf61839604b65555a to your computer and use it in GitHub Desktop.
Save mamemomonga/dadb1f72e5a2b6cbf61839604b65555a to your computer and use it in GitHub Desktop.
Wasabiをnginxでプロクシする

Wasabiをnginxでプロクシする

  • Wasabiの出力をnginxでプロクシして media.example.com から出力する
  • Wasabiのリージョンは us-east-2

mastodonの .env.production 設定例

S3_ENABLED=true
S3_BUCKET=Wasabiのバケット名
S3_REGION=us-east-2
S3_PROTOCOL=https
S3_ENDPOINT=https://s3.us-east-2.wasabisys.com/
S3_HOSTNAME=media.example.com
AWS_ACCESS_KEY_ID=アクセスキーID
AWS_SECRET_ACCESS_KEY=シークレットキーID

misskey の設定例

設定 > インスタンス > オブジェクトストレージを使用する

Key Val
URL https://media.example.com
バケット名 Wasabiのバケット名
プレフィックス 任意の名前
エンドポイント s3.us-east-2.wasabisys.com
アクセスキー アクセスキーID
シークレットキー シークレットキーID
SSLを使用 オン

nginx設定例

server {
        server_name media.example.com;
        listen 80;
        server_tokens off;
        location / {
                return 301 https://$host$request_uri;
        }
}

server {
        server_name media.example.com;

        listen 443 ssl http2;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_session_cache shared:SSL-DON-MEDIA:1m;
        ssl_session_tickets off;
        ssl_session_timeout 10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        ssl_certificate     CloudFrontのSSL証明書;
        ssl_certificate_key CloudFrontのSSL秘密鍵;

        keepalive_timeout    70;
        sendfile             on;
        client_max_body_size 8m;

        add_header Strict-Transport-Security "max-age=31536000";
        server_tokens off;

        gzip on;
        gzip_disable "msie6";
        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        location / {
                proxy_set_header Host s3.us-east-2.wasabisys.com;
                proxy_pass https://s3.us-east-2.wasabisys.com/;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header Proxy "";
                proxy_pass_header Server;
                expires 30d;
                add_header Pragma public;
                add_header Cache-Control "public";
        }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment