Solicitações de mapas com base no subdomínio

1

Como mapear o subdomínio que não preciso reescrever o URI?

server {
    listen       80;
    server_name  cooking.com user.cooking.com admin.cooking.com;
    root   html/cooking/public;

    location / {
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  FEED_ENV  default;
        include        fastcgi_params;
    }
    location ~* \.(ico|css|js|gif|jpe?g|png)$ {
        expires max;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }
}

Então, basicamente, quando um usuário acessar admin.cooking.com , ele deverá solicitar /index.php/admin/ . Eu estava pensando em usar if mas se estiver ruim .

    
por Jürgen Paul 30.07.2012 / 16:25

1 resposta

3

Você precisa de blocos de servidores separados para isso.

# /etc/nginx/sites-available/php.conf

location @php {
  fastcgi_param FEED_ENV default;
  fastcgi_index index.php;
  fastcgi_pass 127.0.0.1:9000;
}

... e sua configuração de servidor:

# /etc/nginx/sites-available/server.conf;

listen 80;
root html/cooking/public;
index index.html index.htm index.php;
include fastcgi_params;

location / {
  location ~* \.(ico|css|js|gif|jpe?g|png)$ {
    expires max;
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
  }
  try_files $uri $uri/ @php;
}

... e sua configuração final do host virtual:

# /etc/nginx/sites-available/virtual_hosts.conf

server {
  server_name cooking.com;
  include sites-available/server.conf;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include sites-available/php.conf;
}

server {
  server_name user.cooking.com;
  include sites-available/server.conf;
  fastcgi_param  SCRIPT_FILENAME  $document_root/index.php/user/$args;
  include sites-available/php.conf;
}

server {
  server_name admin.cooking.com;
  include sites-available/server.conf;
  fastcgi_param  SCRIPT_FILENAME  $document_root/index.php/admin/$args;
  include sites-available/php.conf;
}

Você cria apenas um link simbólico em sites-enabled para o virtual_hosts.conf !

Como não sei seu ambiente exato (o back-end e como ele lida com os URLs recebidos), não posso fornecer uma configuração perfeita. Mas isso deve ser um bom ponto de partida.

    
por 21.08.2012 / 01:42

Tags