2015-04-29 3 views
2

Я пытаюсь активировать HTTPS на сервере Debian 7 с nginx и fastcgi-mono-server4. Я также использую ServiceStack.Как включить HTTPS с fastcgi-mono-server4 и nginx?

Когда я использую порт 80 (не SSL), все работает нормально. Когда я меняю его на порт 443 (SSL), я получаю сообщение об ошибке при попытке вызвать сервер. Ошибка:

No Application Found 

Unable to find a matching application for request: 

    Host business.myserver.com 
    Port 443 
    Request Path /api 
    Physical Path /var/www/business.myserver.com/api 

Вот мой nginx.conf файл:

server { 
      listen 443 ssl; 

      fastcgi_param HTTPS on; 

      ssl_certificate /etc/nginx/ssl/nginx.crt; 
      ssl_certificate_key /etc/nginx/ssl/nginx.key; 

      server_name business.myserver.com; 
      root /var/www/business.myserver.com; 

      location /api { 

        error_log /var/log/nginx/api-error.log; 

        #add_header Access-Control-Allow-Origin "*"; 
        add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; 
        add_header Access-Control-Max-Age 1728000; 
        add_header Access-Control-Allow-Headers "Origin, Content-Type, Authorization"; 
        #add_header Access-Control-Allow-Credentials "true"; 

        index index.html index.htm default.aspx Default.aspx; 

        fastcgi_index /api; 
        fastcgi_pass 127.0.0.1:9000; 

        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; 

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

        # HACK: something is causing ServiceStack/ASP.Net -> Mono -> FastCGI 
        # to encode 'deflate' again, so force request to disallow gzip or deflate 
        fastcgi_param HTTP_ACCEPT_ENCODING ""; 
      } 
    } 

Любая помощь или подсказка была бы оценена.

+0

Вы поняли это? у меня точно такая же проблема –

ответ

1

У меня была такая же проблема, но в моем случае она исходила из конфигурации fastcgi-mono-server4.

При выполнении этой команды вы указываете конфигурационную папку. Что-то вроде

fastcgi-mono-server4 --appconfigdir '/var/www/mono-fastcgi ...' 

и что папка /var/www/mono-fastcgi содержит .webapp конфигурационный файл. Вам нужно убедиться, что вы прослушиваете порт 443. Например:

<apps> 
    <web-application> 
    <name>aspnet</name> 
    <vhost>my/application.com</vhost> 
    <vport>443</vport> 
    <vpath>/</vpath> 
    <path>/srv/www/aspnet</path> 
    </web-application> 
</apps> 

В моем случае <vport> был в 80, и это то, что вызывает эту ошибку.

Смежные вопросы