I want to setup php (wordpress) and a backend API (fastapi) on the same local machine for development. I am using docker swarm mode on this single node. So, nginx, php, and backend are all docker services.
When I use following nginx.conf, wordpress takes over the whole address space. E.g. when I write localhost/api/docs, wordpress shows me its main page. Whereas I would like to see my fastapi documentation. How can I fix this?
upstream php {
server unix:/tmp/php-cgi.socket;
server php:9000;
}
server {
listen 80;
server_name _;
location /api {
proxy_pass http://backend:8888/api;
}
location / {
root /var/www/html;
index index.php index.html;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
fastcgi_intercept_errors on;
if ($uri !~ "^/images/") {
fastcgi_pass php;
}
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
root /var/www/html;
expires max;
log_not_found off;
}
}