お知らせ
現在サイトのリニューアル作業中のため、表示が崩れているページが存在することがあります。
書いてなさ過ぎて忘れるので備忘録として書き出しておく。必要最低限の設定なので要件が他にある場合は追加が必要。
SPAなのでパスがなければ全部index.htmlに飛ばす。原理はどれも同じなのでVueやAngularなどのSPAもこれで行けると思う。ケツの=404がないと無限リダイレクトを起こす。
server {
  listen       80;
  location / {
    root /path/to;
    index index.html;
    try_files $uri /index.html =404;
  }
}
SSRなのでNext.jsのサーバープロセスにリバースプロキシする。別に直結してもいいが手前にルーティング機構があるほうが便利である。
mapステートメントがあるのは、これがないとiOS Safariでアクセスできないため
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
server {
  listen       80;
  location / {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass  http://localhost:3000;
  }
}
SPAではないのでパスがなければ同名のhtmlファイルに飛ばす。ケツの=404がないと無限リダイレクトを起こす。
server {
  listen       80;
  location / {
    root /path/to;
    index index.html;
    try_files $uri $uri.html =404;
  }
}