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.
Best Answer
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.