我试图让所有这些设备运行起来,而且我现在失败了。我主要想测试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
非常感谢!
答案 0 :(得分:2)
为任何想要让它发挥作用的人找到了问题。似乎用/ 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。正在努力......
答案 1 :(得分:1)
它几乎可以工作但是信号器的脚本(信号器/集线器)现在只给我404。正在努力......
与SignalR的开发人员聊天后,他们确认Nginx + FastCgi混合不支持SignalR。
如果您打算使用SignalR,我建议您使用IIS。有关SignalR的更多信息,请访问他们的网站。
干杯