Ошибка Nginx 502 Bad Gateway при вызове API - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть сборка Angular и бэкэнд Django, обеспечивающий работу API на одном сервере. Я настроил их в nginx, у внешнего интерфейса есть прокси для внутреннего сервера.

Сервер работает на URL 127.0.0.1:8000/api, а интерфейс работает на локальном хосте

Config:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        charset utf-8;
        server_name  localhost;

        root   /usr/share/nginx/html;
        index  index.html index.htm;
        include /etc/nginx/mime.types;

        gzip on;
        gzip_types text/css text/javascript application/x-javascript application/json;

        location /api {
            proxy_pass http://127.0.0.1:8000/api;
        }

        location / {
            try_files $uri $uri/ /index.html;
        }
    }
}

Теперь, когда я делаю любой вызов API из внешнего интерфейса, я получаю ошибку 502 Bad Gateway

GET http://localhost/api/posts/post/management 502 (Bad Gateway)

1 Ответ

0 голосов
/ 28 апреля 2019

У меня есть чейнджер конфиг на

upstream backend {
      server backend:8000;
    }

    server {
        listen 80;
        charset utf-8;
        server_name  localhost;

        root   /usr/share/nginx/html;
        index  index.html index.htm;
        include /etc/nginx/mime.types;

        gzip on;
        gzip_types text/css text/javascript application/x-javascript application/json;

        # backend urls
        location ~ ^/(admin|api|media) {
            proxy_redirect off;
            proxy_pass http://backend;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
        }

        # static files
        location /static {
            proxy_pass http://backend;
        }

        # frontend
        location / {
            try_files $uri $uri/ /index.html;
        }

и он отлично работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...