0

ABTWSAC (Web Connect) を使用して CGI 処理を行う VisualAge Smalltalk で開発された Web アプリがあります。

Apache では、単にAddHandler cgi-script .exemime モジュールとOptions -Indexes FollowSymLinks ExecCGIDirectory モジュールを使用しています。

(IIS で動作する ISAPI ハンドラーもあります)。

nginxでこれをどのように行うのですか?Nginx は常にポートまたは「unix」ソケットで実行中のサービスを必要とするようです (これは明らかに Windows ではサポートされていません)。

すべてのグーグルは、nginxのcgiがPHPでなければならないと人々が想定していることを示しています。例や説明のいずれも、具体的にやりたいことを行う方法を教えてくれません。

4

2 に答える 2

1

私の知る限り、Nginx にはネイティブ CGI サポートがありません。「のみ」の fastCGI をサポートします。

私の目には、次の 4 つのオプションがあります。

1)ABTWSAC(Web Connect)からシーサイドに乗り換え。次に、VisualAge Smalltalk で seaside を使用します。私はこのガイドで行きます

後で参照するためにリンクからコピー:

必要最小限の Nginx FastCGI 構成

worker_processes 1;

events
{
  worker_connections  1024;
}

http
{
  include       mime.types;
  default_type  application/octet-stream;

  upstream seaside 
  {
    server localhost:9001;
    server localhost:9002;
    server localhost:9003;
  }

  server
  {
    root /var/www/glass/;

    location /
    { 
      error_page 403 404 = @seaside;
    }

    location @seaside
    {
      include fastcgi_params;
      fastcgi_pass seaside;
    }
  }
}

2) Seaside へのリバース プロキシ (ここでも ABTWSAC (Web Connect) からの切り替えが必要)。詳細については、このリンクを参照してください。

3) Apache または lighthttpd (ngnix とは異なるポート) を同じサーバーにインストールします。nginx 経由で cgi-bin フォルダーをプロキシしたい。nginx のみを使用するという目的に反することはわかっていますが、それも可能な解決策なので、ここに書いています。

nginx (8888 ポートで実行) 構成に書き込むことができます。

location /cgi-bin {
    proxy_pass http://127.0.0.1:8888
}

4) 前述のapachelighthttpdなどのネイティブ CGI サポートを使用して Web サーバーを実行することを既に提案したように。

于 2017-10-27T12:05:11.980 に答える