У меня есть простое 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
}
Заранее признателен всем, кто потратит тут своё время!