@iiiliiiaaa

Как перехватить запросы к php в nginx?

У меня есть простое flask-приложение для покупки товаров, для интеграции виджета выбора ПВЗ СДЭК требуется разместить на сервере php-файл, ссылку на который необходимо указать в js-скрипте, пример (из документации СДЭК):

<script type="text/javascript">
    var ourWidjet = new ISDEKWidjet ({
        ...
        servicepath: 'http://yoursite.net/service.php', //ссылка на файл service.php на вашем сайте
        ...
    });
</script>


В данный момент у меня нет возможности переписывать логику этого скрипта в python, так что я подумал просто оставить его как есть, ВОПРОСЫ:

1. Как мне настроить мой nginx так, чтобы при запросе этого пути сервер не отправлял его на обработку в gunicorn-flask, а самостоятельно исполнял php и вернул нужный ответ?
2. Читал, что можно запустить php прямо из python через subprocess, но сомневаюсь в правильности такого решения.
3. Есть ли более простое\готовое решение?

Мой текущий конфиг nginx (/etc/nginx/sites-available/myproject):
server {
    server_name yoursite.net www.yoursite.net;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/user/myproject/project.sock;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/yoursite.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/yoursite.net/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
}

server {
    if ($host = www.yoursite.net) {
        return 301 https://yoursite.net$request_uri;
    } # managed by Certbot

    if ($host = yoursite.net) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    server_name yoursite.net www.yoursite.net;
    return 404; # managed by Certbot
}


Заранее признателен всем, кто потратит тут своё время!
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Как мне настроить мой nginx так, чтобы при запросе этого пути сервер не отправлял его на обработку в gunicorn-flask, а самостоятельно исполнял php и вернул нужный ответ?

Просто добавить локейшен с этим урлом и соответствующей обработкой.

https://nginx.org/ru/docs/http/request_processing.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы