【问题标题】:Nginx, SiginalR and FastCGI with mono: No application found带有单声道的 Nginx、SiginalR 和 FastCGI:未找到应用程序
【发布时间】:2012-02-12 19:48:59
【问题描述】:

我正在尝试运行所有这些设置,但我现在失败得很厉害。我主要想测试 Websockets,由于 IIS 7.5 不支持它们,我尝试使用 Nginx 和 Mono/FastCGI 进行设置。

所以,一切都是基于 Windows 的,没有 linux,没有 unix:windows。现在,我通过调用http://localhost:7171/app(或http://127.0.0.1:7171/app)得到的只是这个错误:

No Application Found

Unable to find a matching application for request:

Host  localhost:7171
Port  7171
Request Path  /app/index.html
Physical Path C:\nginx\html/app/index.html

这里是现在的配置:

fastcgi.conf

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;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

fastcgi_params

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

fastcgi_param  PATH_INFO          "";
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

nginx.conf

server {
listen       7171;
server_name  127.0.0.1;


#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

    #fastcgi_index index.html;
    #fastcgi_pass 127.0.0.1:9000;
    #include C:\\nginx\\conf\\fastcgi_params;
 }

location /app {

    fastcgi_index index.html;
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
 }
 }

这是用于启动 fastcgi 的 cmd 行:

"C:\Program Files (x86)\Mono-2.10.8\bin\fastcgi-mono-server4" /socket=tcp:127.0.0.1:9000 /applications=/:/c://nginx//html//app

非常感谢!

【问题讨论】:

    标签: mono nginx fastcgi signalr


    【解决方案1】:

    为任何想要让它工作的人找到问题。似乎用 /application 指向绝对路径启动 fast-cgi-mono-server4 不起作用。我必须使用相对路径启动它:

    "C:\Program Files (x86)\Mono-2.10.8\bin\fastcgi-mono-server4" /applications=/:/..\\..\\..\\nginx\\html\\app\\ /socket=tcp:127.0.0.1:9000
    

    此外,Nginx 似乎无法路由除 / 以外的位置。所以你必须在根目录上只有一个应用程序。

    location / {
            root c:\\nginx\\html\\app;            
            fastcgi_index index.html;
            fastcgi_pass 127.0.0.1:9000;
            include C:\\nginx\\conf\\fastcgi_params;
        }
    

    它几乎可以工作,但信号器的脚本(信号器/集线器)现在只给我 404。正在努力...

    【讨论】:

    • 非常感谢。您关于相对路径的提示节省了我的时间。
    【解决方案2】:

    它几乎可以工作,但信号器的脚本(信号器/集线器)现在只给我 404。正在努力...

    在与 SignalR 的开发人员交谈后,他们确认 Nginx+FastCgi 组合不支持 SignalR。

    如果您打算使用 SignalR,我建议您使用 IIS。有关 SignalR 的更多信息,请访问他们的网站。

    干杯

    【讨论】:

    • 并不是不支持。它只是还没有完全在单声道中工作。 SignalR 的下一个版本将支持多个主机。
    猜你喜欢
    • 2012-08-15
    • 1970-01-01
    • 2011-11-28
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    相关资源
    最近更新 更多