Настройка поддоменов в Nginx

#configuration #nginx #subdomain

#конфигурация #nginx #поддомен

Вопрос:

На моем сервере установлено 2 приложения, использующие Nginx:

  1. Приложение Rails
  2. блог WordPress

Я хочу, чтобы приложение rails было доступно через:staging.mydomain.com и что блог WordPress будет доступен через:blog.mydomain.com

сайт работает нормально, но когда я пытаюсь получить доступ к блогу, я получаю экран «добро пожаловать в nginx«.

вот моя конфигурация nginx:

 server {
     listen   80;
     server_name staging.mydomain.com;
     rails_env staging;

     access_log /srv/www/staging/www/logs/access.log;
     error_log /srv/www/staging/www/logs/error.log;

     location / {
          root   /srv/www/staging/www/current/trunk/web/public;
          passenger_enabled on;
          }

   }
   server {
        listen       80;
        server_name  blog.mydomain.com;


        try_files $uri $uri/ /index.php;
        access_log /srv/www/blog.mydomain.com/logs/access.log;
        error_log /srv/www/blog.mydomain.com/logs/error.log;

        location ~ .php$ {
            root /srv/www/blog.mydomain.com;
            include        fastcgi_params;
            fastcgi_pass   localhost:53217;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        }
    }
  

есть мысли о том, что здесь не так?

Ответ №1:

Возможно, вы захотите изменить server_name для своего блога на blog.mydomain :

 server_name  test.mydomain.com;
  

Я предполагаю, что вы пытаетесь получить доступ к blog.mydomain, но забыли изменить server_name .

Попробуйте использовать index директиву вместо try_files :

 index index.php;
  

Также root директива должна указывать на папку, содержащую ваш index.php файл:

 root /srv/www/blog.mydomain.com; # should contain index.php
  

Комментарии:

1. после изменения «индекса» я получаю «404 не найдено»

2. Тогда у вас нет index.php в /srv/www/blog.mydomain.com/index.php . Находится ли он в подкаталоге? Измените свою root директиву.

3. нет, я вижу индексный файл в: /srv/www/blog.mydomain.com/index.php нужно ли мне что-то менять в корневом каталоге?

4. Вам нужно изменить root директиву, чтобы указать на каталог с вашим index.php файл.

5. таким образом, он указывает на нужное место, поскольку индексный файл находится по адресу: /srv/www/blog.mydomain.com/index.php

Ответ №2:

Переместить директиву root /srv/www/blog.mydomain.com; из location {} в server {} блок.

И добавьте местоположение для корневого каталога.

 location / {
    try_files $uri $uri/ /index.php;
}
  

Ответ №3:

исправлено! использовал этот пост: http://wiki.nginx.org/Wordpress

Комментарии:

1. Не могли бы вы обновить свой ответ о том, как вы решили свою проблему, пожалуйста?