Nginx não está funcionando corretamente em subdomínios

1

Estou tentando configurar uma instância do Sugar CRM . Eu tenho um domínio que tem seu site principal em um servidor (www.domain.com) e criei um subdomínio (sugar.domain.com), mas eu quero que esse subdomínio seja hospedado em outro servidor .

Esse segundo servidor tem o nginx instalado , e há um blog WordPress em funcionamento em um virtualhost, então eu precisaria configurar um segundo site. Para fazer isso, criei a estrutura de diretórios e criei um arquivo de configuração /etc/nginx/sites-enabled/sugar.domain.com que possui o seguinte:

*

    server {
                  listen   80;
                  server_name sugar.domain.com *.domain.com;
                  access_log  /var/www/sugar/log/access.log;
                  error_log      /var/www/sugar/log/error.log info;
                  location / {
                      root /var/www/sugar;
                      index index.php;
                  }

    location ~ .php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/sugar/$fastcgi_script_name;
        include 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_intercept_errors        on;
        fastcgi_ignore_client_abort     on;
        fastcgi_read_timeout 180;

    }


    ## Disable viewing .htaccess & .htpassword
    location ~ /\.ht {
        deny  all;
    }
}
upstream backend {
              server 127.0.0.1:9000;

}

Até onde eu sei, eu preciso do parâmetro *. domain.com no sinalizador "server_name", mas algo está falhando aqui: recebo um erro 403 Proibido ou recebo PHP código ( eu posso ler o código do arquivo PHP no navegador, como texto normal) que de alguma forma não é executado. Eu tentei definir permissões para 755 dentro do diretório / var / www / sugar /, e também configurei o proprietário: group com um chown -R www-data: www-data / var / www / sugar /

O problema é que não sei se meu erro está na configuração do site nginx, nas permissões da minha pasta ou em outro lugar: (

Poderia ser por causa do domínio principal (www.domain.com) está hospedado em outro servidor? Eles têm que estar juntos necessariamente?

    
por javipas 30.12.2010 / 15:47

2 respostas

3

Primeiro erro eu vejo logo de cara - local leva um regexp, você precisa escapar do seu. personagem. Eu sugiro:

location ~* \.php$ {
}

Você não precisa de * .domain.com, sugar.domain.com deve ser tudo o que é necessário. Como o koolhead17 menciona, certifique-se de configurar seu registro do DNS A para o IP deste segundo servidor para sugar.domain.com; O nginx usará o cabeçalho "Host" vindo do navegador e combinará com o server_name.

    
por 30.12.2010 / 16:22
0

Eu posso estar errado, mas você tem que adicionar um subdomínio de seu painel de controle, digamos, test.domain.com e mapeá-lo com um registro que apontará para o IP em que o Nginx está sendo executado.

No Nginx.conf você tem que colocar o IP e o subdomínio no virtualhost como fazemos no Apache.

    
por 30.12.2010 / 15:55