I have mono 2.11 set up with my nginx 1.0.15 webserver running on centos 6.2. I built it from source and xps2, xps4 and fastcgi-mono-server2 work as expected. The problem is when I try and run fastcgi-mono-server4. When I run:
fastcgi-mono-server4 /applications=site:/:/srv/www/html/ /socket=tcp:127.0.0.1:9000 /loglevels=Debug /printlog=true
Here is what I get from fastcgi-mono-server2:
[2012-06-06 23:51:07Z] Debug Record received. (Type: BeginRequest, ID: 1, Length: 8)
[2012-06-06 23:51:07Z] Debug Record received. (Type: Params, ID: 1, Length: 801)
[2012-06-06 23:51:07Z] Debug Record received. (Type: Params, ID: 1, Length: 0)
[2012-06-06 23:51:07Z] Debug Read parameter. (QUERY_STRING = )
[2012-06-06 23:51:07Z] Debug Read parameter. (REQUEST_METHOD = GET)
[2012-06-06 23:51:07Z] Debug Read parameter. (CONTENT_TYPE = )
[2012-06-06 23:51:07Z] Debug Read parameter. (CONTENT_LENGTH = )
[2012-06-06 23:51:07Z] Debug Read parameter. (SCRIPT_NAME = /)
[2012-06-06 23:51:07Z] Debug Read parameter. (REQUEST_URI = /)
[2012-06-06 23:51:07Z] Debug Read parameter. (DOCUMENT_URI = /)
[2012-06-06 23:51:07Z] Debug Read parameter. (DOCUMENT_ROOT = /srv/www/html)
[2012-06-06 23:51:07Z] Debug Read parameter. (SERVER_PROTOCOL = HTTP/1.1)
[2012-06-06 23:51:07Z] Debug Read parameter. (GATEWAY_INTERFACE = CGI/1.1)
[2012-06-06 23:51:07Z] Debug Read parameter. (SERVER_SOFTWARE = nginx/1.0.15)
[2012-06-06 23:51:07Z] Debug Read parameter. (REMOTE_ADDR = 192.168.128.121)
[2012-06-06 23:51:07Z] Debug Read parameter. (REMOTE_PORT = 62326)
[2012-06-06 23:51:07Z] Debug Read parameter. (SERVER_ADDR = 192.168.128.125)
[2012-06-06 23:51:07Z] Debug Read parameter. (SERVER_PORT = 80)
[2012-06-06 23:51:07Z] Debug Read parameter. (SERVER_NAME = site)
[2012-06-06 23:51:07Z] Debug Read parameter. (REDIRECT_STATUS = 200)
[2012-06-06 23:51:07Z] Debug Read parameter. (PATH_INFO = )
[2012-06-06 23:51:07Z] Debug Read parameter. (SCRIPT_FILENAME = /srv/www/html/)
[2012-06-06 23:51:07Z] Debug Read parameter. (HTTP_HOST = site)
[2012-06-06 23:51:07Z] Debug Read parameter. (HTTP_USER_AGENT = Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0)
[2012-06-06 23:51:07Z] Debug Read parameter. (HTTP_ACCEPT = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8)
[2012-06-06 23:51:07Z] Debug Read parameter. (HTTP_ACCEPT_LANGUAGE = en-us,en;q=0.5)
[2012-06-06 23:51:07Z] Debug Read parameter. (HTTP_ACCEPT_ENCODING = gzip, deflate)
[2012-06-06 23:51:07Z] Debug Read parameter. (HTTP_CONNECTION = keep-alive)
[2012-06-06 23:51:07Z] Debug Read parameter. (HTTP_COOKIE = ASP.NET_SessionId=0176BE8FC161E702439D3C91)
[2012-06-06 23:51:07Z] Debug Record received. (Type: StandardInput, ID: 1, Length: 0)
[2012-06-06 23:51:08Z] Debug Record sent. (Type: StandardOutput, ID: 1, Length: 196)
[2012-06-06 23:51:08Z] Debug Record sent. (Type: StandardOutput, ID: 1, Length: 128)
[2012-06-06 23:51:08Z] Debug Record sent. (Type: StandardOutput, ID: 1, Length: 0)
[2012-06-06 23:51:08Z] Debug Record sent. (Type: EndRequest, ID: 1, Length: 8)
And this is what I get from fastcgi-mono-server4:
[2012-06-06 23:50:52Z] Debug Record received. (Type: BeginRequest, ID: 1, Length: 8)
[2012-06-06 23:50:52Z] Debug Record received. (Type: Params, ID: 1, Length: 801)
[2012-06-06 23:50:52Z] Debug Record received. (Type: Params, ID: 1, Length: 0)
[2012-06-06 23:50:52Z] Debug Read parameter. (QUERY_STRING = )
[2012-06-06 23:50:52Z] Debug Read parameter. (REQUEST_METHOD = GET)
[2012-06-06 23:50:52Z] Debug Read parameter. (CONTENT_TYPE = )
[2012-06-06 23:50:52Z] Debug Read parameter. (CONTENT_LENGTH = )
[2012-06-06 23:50:52Z] Debug Read parameter. (SCRIPT_NAME = /)
[2012-06-06 23:50:52Z] Debug Read parameter. (REQUEST_URI = /)
[2012-06-06 23:50:52Z] Debug Read parameter. (DOCUMENT_URI = /)
[2012-06-06 23:50:52Z] Debug Read parameter. (DOCUMENT_ROOT = /srv/www/html)
[2012-06-06 23:50:52Z] Debug Read parameter. (SERVER_PROTOCOL = HTTP/1.1)
[2012-06-06 23:50:52Z] Debug Read parameter. (GATEWAY_INTERFACE = CGI/1.1)
[2012-06-06 23:50:52Z] Debug Read parameter. (SERVER_SOFTWARE = nginx/1.0.15)
[2012-06-06 23:50:52Z] Debug Read parameter. (REMOTE_ADDR = 192.168.128.121)
[2012-06-06 23:50:52Z] Debug Read parameter. (REMOTE_PORT = 62326)
[2012-06-06 23:50:52Z] Debug Read parameter. (SERVER_ADDR = 192.168.128.125)
[2012-06-06 23:50:52Z] Debug Read parameter. (SERVER_PORT = 80)
[2012-06-06 23:50:52Z] Debug Read parameter. (SERVER_NAME = site)
[2012-06-06 23:50:52Z] Debug Read parameter. (REDIRECT_STATUS = 200)
[2012-06-06 23:50:52Z] Debug Read parameter. (PATH_INFO = )
[2012-06-06 23:50:52Z] Debug Read parameter. (SCRIPT_FILENAME = /srv/www/html/)
[2012-06-06 23:50:52Z] Debug Read parameter. (HTTP_HOST = site)
[2012-06-06 23:50:52Z] Debug Read parameter. (HTTP_USER_AGENT = Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0)
[2012-06-06 23:50:52Z] Debug Read parameter. (HTTP_ACCEPT = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8)
[2012-06-06 23:50:52Z] Debug Read parameter. (HTTP_ACCEPT_LANGUAGE = en-us,en;q=0.5)
[2012-06-06 23:50:52Z] Debug Read parameter. (HTTP_ACCEPT_ENCODING = gzip, deflate)
[2012-06-06 23:50:52Z] Debug Read parameter. (HTTP_CONNECTION = keep-alive)
[2012-06-06 23:50:52Z] Debug Read parameter. (HTTP_COOKIE = ASP.NET_SessionId=0176BE8FC161E702439D3C91)
[2012-06-06 23:50:53Z] Debug Record received. (Type: StandardInput, ID: 1, Length: 0)
[2012-06-06 23:50:53Z] Debug Record sent. (Type: EndRequest, ID: 1, Length: 8)
I do not see what I am doing wrong. Any help would be great.
EDIT: Reworked things and now I am getting a 502 Error for Bad Gateway. The logs still look the same.
Looked in my error log for Nginx and found many entries like this:
2012/06/18 13:56:01 [error] 3108#0: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.121, server: site, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "site"
I get the same response whether the fastcgi-mono-server4 is on or not. It always shows a 502 error now.
My sample MVC3 application is working fine on Mono 2.10.8.1 from badgerports.org (I use ubuntu).
After installing Mono 2.11.2 from source the same application would always return a 502 Bad Gateway just like in your case.
My nginx logs looked like this:
After invoking fastcgi-mono-server4 with the printlog option set to true
It would generate this stacktrace after visiting localhost:8000/
Here is some of my configuration:
-
-
I found a solution to my problem here: bugzilla.xamarin.com/show_bug.cgi?id=2876 (What bugs me is that it's supposively been fixed on February 2012 - the mono I compiled was released in June afaik yet it didn't work out of the box )
I made a script based on the suggestions found there that fixes the mono installation, just point the PREFIX variable to your mono directory and run it:
After this the application "works", but it's not quite there yet. It doesn't 502 any longer, and I get a nice stacktrace...
So I still have things to figure out myself, but I hope something from this will be helpful to you.