Назад | Перейти на главную страницу

Nginx не работает должным образом на поддоменах

Я пытался настроить Экземпляр Sugar CRM. У меня есть домен, основной сайт которого находится на сервере (www.domain.com), и я создал субдомен (sugar.domain.com), но я хочу этот субдомен быть размещенным на другом сервере.

Этот второй сервер установлен nginx, и там на виртуальном хосте есть рабочий блог WordPress, поэтому мне нужно было бы настроить второй сайт. Для этого я создал структуру каталогов и создал /etc/nginx/sites-enabled/sugar.domain.com конфигурационный файл, содержащий следующее:

*

    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;

}

Насколько я знаю, мне нужен * .domain.com параметр во флаге server_name, но здесь что-то происходит сбой: я получаю либо ошибку 403 Forbidden, либо код PHP (Я могу прочитать код файла PHP в браузере, как обычный текст), который почему-то не выполняется. Я попытался установить разрешения на 755 внутри каталога / var / www / sugar /, а также установил группу owner: с chown -R www-data: www-data / var / www / sugar /

Дело в том, что я этого не делаю, если моя ошибка в конфигурации сайта nginx, в разрешениях на мою папку или в другом месте :(

Может ли это быть из-за того, что основной домен (www.domain.com) размещен на другом сервере? Обязательно ли они должны быть вместе?

Первую ошибку я вижу сразу же - location принимает регулярное выражение, вам нужно избежать вашего. персонаж. Я предлагаю:

location ~* \.php$ {
}

Вам не нужен * .domain.com, все, что нужно, - это sugar.domain.com. Как упоминает koolhead17, убедитесь, что вы установили запись DNS A на IP этого второго сервера для sugar.domain.com; nginx будет использовать заголовок «Host», исходящий из браузера, и сопоставляет его с server_name.

Возможно, я ошибаюсь, но вам нужно добавить поддомен с панели управления, например test.domain.com, и сопоставить его с записью A, которая будет указывать на IP-адрес, на котором работает ваш Nginx.

В Nginx.conf вы должны поместить IP-адрес и поддомен в виртуальный хост, как мы это делаем в Apache.