簡體   English   中英

VisualAge Smalltalk Web Connect和Nginx

[英]VisualAge Smalltalk Web Connect and Nginx

我有一個在VisualAge Smalltalk中開發的Web應用程序,該應用程序使用ABTWSAC(Web連接)進行CGI處理。

在Apache中,我只是在mime模塊中添加了AddHandler cgi-script .exe ,而在Directory模塊中僅Options -Indexes FollowSymLinks ExecCGI

(在IIS中也有一個ISAPI處理程序)。

您究竟如何在Nginx中做到這一點? Nginx似乎總是希望在端口或“ unix”套接字(Windows上顯然不支持)上運行服務。

所有的谷歌搜索表明,人們認為nginx中的cgi必須是PHP。 這些例子或解釋都沒有告訴我如何做我想做的事情。

據我所知,Nginx沒有本機CGI支持。 它支持“僅” fastCGI。

在我眼中,您有四個選擇:

1)從ABTWSAC(Web連接)更改為海邊。 然后在VisualAge Smalltalk上使用海邊。 我會和這個指南一起去

從鏈接復制以供以后參考:

我們的裸骨頭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)正如您已經建議的那樣,運行帶有本地CGI支持的Web服務器,例如您提到的apachelighthttpd

塵土飛揚

如果我沒記錯的話,還可以在SST之上使用Web Connect,它基本上只是一個圖像內HTTP服務器。 因此,您的Web服務器(nginx)僅需要充當HTTP(反向)代理。 它不比fastCGI快,但是在映像啟動過程中只需要對Web Connect設置過程進行最少的更改即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM