NginxでCGI

NginxはFastCgiをサポートしていますが、CGIは直接サポートしていません。
fcgiwrapというツールを使用することで、FastCgi経由で間接的にNginxでCGIを利用できます。
fcgiwrapはDebianパッケージに含まれているため、Debian系OSではapt-get install fcgiwrapでインストール可能です。

Nginxの設定例は以下の通りです。

 server {
   listen 443 ssl;
   listen [::]:443 ssl;
   server_name kaiko.kareha.org;
   ssl_certificate /etc/letsencrypt/live/kaiko.kareha.org/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/kaiko.kareha.org/privkey.pem;
   root /home/kaiko/public_html;
 
   location /cgi-bin/ {
     root /home/kaiko;
     fastcgi_pass unix:/run/fcgiwrap.socket;
     include fastcgi_params;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param QUERY_STRING $query_string;
     fastcgi_param REQUEST_METHOD $request_method;
     fastcgi_param CONTENT_TYPE $content_type;
     fastcgi_param CONTENT_LENGTH $content_length;
   }
 
   location /cgi-txt/ {
     root /home/kaiko;
     autoindex on;
     charset utf-8;
     try_files $uri $uri/ =404;
   }
 
   location / {
     autoindex on;
     charset utf-8;
     try_files $uri $uri/ =404;
   }
 }