Nginx Um domínio de vários aplicativos

1

Sou relativamente novo no mundo nginx, agora tenho um problema muito complexo (do meu ponto de vista). Aqui meu cenário. Eu desenvolvi um aplicativo da web (um aplicativo de página única baseado em backbone.js) e para as páginas de conteúdo (impressão e essas coisas) estou usando o Wordpress. Eu quero alcançar o seguinte resultado:

Se o usuário acessar meu site (example.com), o index.html do aplicativo deverá ser exibido com todo o material JavaScript. Se o usuário clicar em um link no rodapé, por exemplo, example.com/imprint, a página de conteúdo do Wordpress deverá ser carregada.

Consegui acessar o aplicativo por meio do meu exemplo principal de domínio.com, mas todas as subpáginas que devem ser veiculadas pelo Wordpress estão mostrando apenas "Arquivo não encontrado" e o nginx.log informa:

2013/09/26 23:08:03 [error] 31223 # 0: * 86944 FastCGI enviado em stderr: "Script principal desconhecido" durante a leitura do cabeçalho de resposta do upstream, cliente: 91.114.231.224, servidor: www.example .at, request: "GET / trainer / HTTP / 1.1", montante: "fastcgi: // unix: /var/run/php5-fpm.sock:", host: "www.example.at"

Devido ao fato de o aplicativo também estar disponível no facebook, ele também pode ser acessado em app.example.com. Então eu tentei passar o proxy de cada solicitação para a raiz de example.com para app.example.com. Isso funciona bem, mas, como mencionado nessa configuração, o Wordpress não funciona mais.

Aqui está o meu arquivo de configuração atual (após a entrada de @Pothi Kalimuthu)

server {
  server_name www.domain.at domain.at;
  # other directives, such as
  index index.html;

  error_log /var/www/log/error.log debug;

  root /var/www/temp;

  location = / {
    # process the single page apps
    #proxy_pass http://mdev.domain.at/;
    # or
    #try_files $uri $uri/ /index.html;
  }

  location /shared 
  {
      root /var/www/temp/src;
  }

  location / {
    # let's process WordPress here

    # if WordPress is installed in another location, then
    alias /var/www/web/;

    try_files $uri $uri/ /index.php;

    # process PHP here
    location ~* ^/(.*\.php)$ {
      # directives to process PHP
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include fastcgi_params;
    }
  }
}

Eu tentei muito por aí, então, por favor, desculpe as linhas excluídas.

Você pode me dar alguma dica de como resolver o meu problema e, por exemplo, se a função de proxy pass é talvez o caminho errado?

editar Após a entrada do Pothi Kalimuthu, consegui pelo menos o meu aplicativo de página única e o wordpress trabalhando juntos.

Alguém tem uma idéia de como configurar o nginx para fazê-lo funcionar com um terceiro projeto do zend-framework que serve apenas URLs que correspondem a domain.at/trainers/ ou location ^ ~ / trainers (eu acho)?

edit2

eu adicionei o bloco de localização para / trainers / mas sempre o index.html será servido

    location /trainers/
    {
            root /var/www/staging/public;
            #alias /var/www/staging/public;
            index index.php;
            try_files $uri $uri/ /index.php$is_args$args;
    }
    
por crebuh 27.09.2013 / 00:04

1 resposta

0

Atualização : uma pequena modificação na sua pergunta original provavelmente funcionará. Por favor, tente o seguinte ...

server {
  server_name domainname.com;
  # other directives, such as
  index index.html index.php;

  root /path/to/apps;

  location = / {
    # process the single page apps
    # proxy_pass http://...;
    # or
    # try_files $uri $uri/ /index.html;
  }

  location / {
    # let's process WordPress here

    # if WordPress is installed in another location, then
    # alias /path/to/wordpress/;

    try_files $uri $uri/ /index.php;

    # process PHP here
    location ~* ^/(.*\.php)$ {
      # directives to process PHP
    }
  }
}

Espero que ajude.

    
por 27.09.2013 / 03:09

Tags