Настройка nginx - root в зависимости от запроса

Различные вопросы по установке и настройке фреймворка, конфигурции веб-сервера и IDE.
Ответить
zemlia-zemlia
Сообщения: 35
Зарегистрирован: 2019.12.05, 20:03

Настройка nginx - root в зависимости от запроса

Сообщение zemlia-zemlia »

искал решения, пробовал, но не помогает. Я в настройке серверов вообще не волоку. но вот такая проблема. У меня есть приложение, и сайт. приложение обращается по адресу https://partners.sospeso.ru/api/ сайт соответственно https://partners.sospeso.ru/ естествено после этих адресов может быть и index.php с параметрами и так же чпу, типа https://partners.sospeso.ru/api/docs и тому подобное. root на сервере /home/master/sites/partners.sospeso.ru/htdocs Из за того, что в приложении чего то поправить нет возможности, а при доработках сайта приложение ложится, когда меняешь классы, которые в нем используются, возникла необходимость разнести сайт и бэкенд приложения в разные директории то есть чтоб сайт открывался из директории
/home/master/sites/partners.sospeso.ru/htdocs
а приложение из директории
/home/master/sites/partners1.sospeso.ru/htdocs
вот мой файл
/etc/nginx/sites-enabled/partners.sospeso.ru
помогите пожалуйста его поправить.

Код: Выделить всё

server {
        server_name partners.sospeso.ru;

        listen 80;
        listen 443 ssl; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/partners.sospeso.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/partners.sospeso.ru/privkey.pem; # managed by Certbot

    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    error_log /etc/nginx/logs/error.log;

    root /home/master/sites/partners.sospeso.ru/htdocs;


     index index.php;
       ### Redirect http to https
        if ( $scheme = 'http' ) {
          rewrite ^/(.*) https://$host/$1 permanent;
        }

       ## Let's Encrypt cert
        location /.well-known/ {
                root /usr/share/nginx/html;
                auth_basic off;
        }

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

    location ~ ^/assets/.*\.php$ {
        deny all;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    error_page 403 /index.php;

    location ~\.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
Ответить