I have two Symfony server instances. First is on 127.0.0.1:8080, second is on 127.0.0.1:8081.
When I'm trying to send POST method from the second instance to the first instance, using url 127.0.0.1:8081/create, I receive HTTP 500.
I'm using Windows 10. Running the servers locally works without a problem. The POST method works perfectly. So that's mean there is some problem with a Docker, but I don't know where. Is it CORS problem?
Here is my docker-compose.yml in the first instance:
version: '3'
services:
    nginx:
        build:
            context: ./docker/nginx/
            dockerfile: Dockerfile-nginx
        volumes:
            - .:/var/www/symfony/
        ports:
            - 8080:80
            
    php:
        build:
            context: ./docker/php74/
            dockerfile: Dockerfile-php74
        volumes:
            - .:/var/www/symfony/
and in the second instance:
version: '3'
services:
    nginx:
        build:
            context: ./docker/nginx/
            dockerfile: Dockerfile-nginx
        volumes:
            - .:/var/www/symfony/
        ports:
            - 8081:80
            
    php:
        build:
            context: ./docker/php74/
            dockerfile: Dockerfile-php74
        volumes:
            - .:/var/www/symfony/
Here is default.conf for the nginx:
server {
    proxy_busy_buffers_size 512k;
    proxy_buffers 4 512k;
    proxy_buffer_size 256k;
    listen       80;
    server_name  localhost;
    root /var/www/symfony/public;
    location / {
        try_files $uri @rewriteapp;
    }
    location @rewriteapp {
        rewrite ^(.*)$ /index.php/$1 last;
    }
    location ~ ^/index\.php(/|$) {
        fastcgi_pass php:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        
         # https://enable-cors.org/server_nginx.html
        if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            #
            # Custom headers and headers various browsers *should* be OK with but aren't
            #
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            #
            # Tell client that this pre-flight info is valid for 20 days
            #
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain; charset=utf-8';
            add_header 'Content-Length' 0;
            return 204;
        }
        if ($request_method = 'POST') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        }
        if ($request_method = 'GET') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        }
    }
    error_log /dev/stdout info;
    access_log /var/log/nginx/symfony_access.log;
}
Has anyone had a similar problem before?
@EDIT: This is my ApiController.php where I'm making a call to other server instance.
<?php
namespace App\Controller;
use App\Entity\Argument;
use App\Repository\ArgumentRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Encoder\XmlEncoder;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Serializer;
use Symfony\Contracts\HttpClient\HttpClientInterface;
class ApiController extends AbstractController
{
    /**
     * @Route("/create", name="create_argument", methods={"POST"})
     */
    public function createArgument(Request $request, HttpClientInterface $client)
    {
        if (!strpos($request->headers->get('Content-Type'), 'application/json'))
        {
            $data = $request->toArray();
            $name = $data['name'];
            $response = $client->request(
                'POST',
                'http://127.0.0.1:8080/name',
                [
                    'headers' => [
                        'Content-Type' => 'application/json',
                        ],
                    'json' => ['name' => $name],
            ]);
            if ($response->getStatusCode() == 200)
            {
                $content = $response->toArray();
                $content['name'] = strrev($content['name']);
                $argument = new Argument();
                $argument->setName($content['name']);
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->persist($argument);
                $entityManager->flush();
                return new Response("Argument added", Response::HTTP_OK);
            }
        }
        return new Response("Bad request", Response::HTTP_BAD_REQUEST);
    }
    /**
     * @Route("/show", name="show_arguments", methods={"GET"})
     */
    public function showArguments(ArgumentRepository $repository)
    {
        $arguments = $repository->findAll();
        if (!$arguments)
            return new Response('There are no tasks.', Response::HTTP_NOT_FOUND);
        $encoders = [new XmlEncoder(), new JsonEncoder()];
        $normalizers = [new ObjectNormalizer()];
        $serializer = new Serializer($normalizers, $encoders);
        $content = $serializer->serialize($arguments, 'json');
        return new JsonResponse($content, Response::HTTP_CREATED, [], true);
    }
}
 
    