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

nginx / fastCGI два домена, одна кодовая база и подкаталог

У меня есть веб-сайт, работающий на Nginx, FastCGI и php-fpm, с несколькими страницами в подкаталогах на нем (которые запускаются через тот же фронт-контроллер, что и остальная часть веб-сайта).

Я ищу конфигурацию, которая позволит обслуживать один из подсайтов с альтернативного URL-адреса, например http://site.johndoe.com/ - тот же сайт с тем же фронт-контроллером, создающим его (index.php в заданном месте на диске), но показывающий только содержимое http://www.example.com/sub/site/ как новый домен.

В итоге, URL: http://site.johndoe.com необходимо прозрачно отображать содержимое http://www.example.com/sub/site/ - что переписывает и прочее server{} конфигурации требуются с Nginx / FastCGI?

Все, что вам нужно сделать, это создать новый виртуальный хост для site.johndoe.com и укажите корень документа на /sub/site, что-то вроде этого:

server {
    listen 80;
    server_name www.example.com;

    error_log /var/log/nginx/example.error_log info;

    root /document/root;

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi.conf;
        fastcgi_intercept_errors        on;
        error_page 404 /error/404.php;
    }
}

server {
    listen 80;
    server_name site.johndoe.com;

    error_log /var/log/nginx/johndoe.error_log info;

    root /document/root/sub/site;

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi.conf;
        fastcgi_intercept_errors        on;
        error_page 404 /error/404.php;
    }
}