Como verificar a pasta raiz nginx

1

Eu tenho um erro 404 muito básico:

Description: HTTP 404.The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Details: Requested URL: /index.html

Não consigo descobrir qual URL completo é finalmente chamado.

Meu index.html é muito básico:

<html><body>hello</body></html>

Meu arquivo de configuração:

server {

 listen 8045;

        server_name localhost;
        root /usr/share/nginx/asproot;

        access_log /var/log/nginx/asp.access.log;

        error_log /var/log/nginx/asp.error.log;

location / {

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

        fastcgi_index Default.aspx;

        fastcgi_pass 127.0.0.1:9000;

        include /etc/nginx/fastcgi_params;

     }

 }

O usuário nginx pode acessar a pasta raiz e ler index.html (testei isso com su ). No navegador eu carrego: http://serverip:8045/index.html

Então, o que está errado? Como posso ver como o URL final é chamado?

EDITAR

Eu descobri que o problema vem do fastcgi. Eu li vários artigos, mas estou perdido!

Para evitar uma pergunta longa com um histórico enorme, eu aborto isso e postarei uma nova pergunta uma vez que eu tenha entendido o básico do fastcgi com o nginx. De qualquer forma eu dou uma configuração que finalmente funciona (veja algumas respostas abaixo)

    
por Giova 18.08.2015 / 14:15

2 respostas

1

ok eu finalmente fiz isso funcionar. Eu ainda tenho outro problema, o índice não funciona Então eu tenho que digitar o endereço completo:

http://localhost:8045/Default.aspx

se eu apenas digitar:

http://localhost:8045 or http://localhost:8045/default.aspx

então eu tenho um erro 404 (então url faz distinção entre maiúsculas e minúsculas)

Como eu disse agora, o fastcgi funciona, as coisas ainda são obscuras e eu tenho que melhorar isso. De qualquer forma, eu te dou toda a minha configuração, espero que isso ajude alguém:

SO: rapbian 3.18.11 (debian) Mono: 4.0.2 fastcgi-server4 nginx 1.2.1

FastCGI

arquivo de configuração:

   <apps>
<web-application>
        <name>ptitest</name>
        <vhost>*</vhost>
        <vport>8045</vport>
        <vpath>/</vpath>
        <path>/usr/share/nginx/asproot</path>
</web-application>
</apps>

linha de comando:

CONFIG_PATH=/usr/share/nginx/fastcgimono
LOG=/var/log/fastcgi-mono4.log

MONOSERVER=$(which fastcgi-mono-server4)

${MONOSERVER} /appconfigdir=${CONFIG_PATH} /socket=tcp:127.0.0.1:9000 /logfile=${LOG} --verbose &

NGINX:

/ etc / nginx / 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_FILENAME         $request_filename;
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   HTTPS                   $https;

# 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;

site-avalaible / default (eu fiz tantas tentativas, aqui o que é agora):

server {

 listen 8045;

        server_name ptitest;
        root /usr/share/nginx/asproot;

        access_log /var/log/nginx/asp.access.log;

        error_log /var/log/nginx/asp.error.log;

location ~ \.(aspx|asmx|ashx|asax|ascx|soap|rem|axd|cs|config|dll)$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
        fastcgi_intercept_errors on;

        }

location / {
        root html;
        index index.html index.htm default.aspx Default.aspx;
     }

 }

Conteúdo da Web: /usr/share/nginx/asproot/web.config:

<configuration>

 <system.web>

<customErrors mode="Off"/>

 </system.web>

</configuration>

/usr/share/nginx/asproot/Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
    <% var test = String.Format("Hello World! Got an aspx page running on nginx!!!\r\n{0}",System.DateTime.Now); %>

    <%= test %>
    </div>
</body>
</html>

Registros

    
por 18.08.2015 / 18:25
3

Parece que quando você acessa o diretório raiz, a diretiva "index" é aplicada, mas quando você está acessando diretamente, ela aplica a diretiva "fastcgi_pass". Você provavelmente deve verificar antes da diretiva de aprovação se o arquivo está presente.

Parece que eu tenho uma necessidade semelhante à sua, eu uso essa configuração para ele:

server {
    listen      80;
    server_name localhost;

    # PublicRoot
    root /usr/share/nginx/asproot;

    # Logs
    access_log /var/log/nginx/asp.access.log main buffer=50k;
    error_log /var/log/nginx/asp.error.log;

    location / {
        try_files $uri @fastcgi;
    }

    # Fastcgi-pass
    location @fastcgi {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_keep_conn on;
        include /etc/nginx/fastcgi_params;
        fastcgi_intercept_errors on;
    }


}

Aqui vou pela primeira vez pela diretiva "try_files" para verificar se consigo obter o arquivo estático, mas se não, vou pela diretiva fastcgi_pass. Mas eu estou hospedando os arquivos aspx na pasta diferente, não o mesmo com arquivos estáticos.

    
por 18.08.2015 / 14:36

Tags