drno-reg
@drno-reg
см не кратко

Nginx proxy_pass возвращает 404, где ошибка в http.conf?

на localhost:3000 поднят react
на localhost:5090 поднят API
на GET запросы отвечают

решил попробовать сделать проксирование http

сделал http.conf

server {

    listen 80;

    server_name localhost;

        access_log  /var/log/nginx/localhost_access.log main;
        error_log /var/log/nginx/localhost_error.log warn;

    location /nginx_status {
                stub_status on;
                allow 127.0.0.1;
                deny all;
        }

    location /service {
        proxy_pass http://service1:5090;
        # Do not change this
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

    location /react {
        proxy_pass http://localhost:3000;
        # Do not change this
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

}


service1:5090; запущен в контейнере и доступен из docker сети по имени и по localhost:5090

запускается под ногами оси npm start

собираю docker image

FROM nginx:1.15.8

#change timezone on Moskow
ENV TZ=Europe/Moscow
RUN apt-get update && apt-get install -yy tzdata
RUN cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get install -yy telnet iputils-ping curl

COPY conf.d/* /etc/nginx/conf.d/http/
COPY nginx.conf /etc/nginx/nginx.conf


после сборки и поднятия контейнера делаю GET запрос localhost/react
nginx возвращает 404 ошибку
в логах
2022/02/08 21:25:59 [error] 7#7: *1 open() "/usr/share/nginx/html/react" failed (2: No such file or directory), client: 172.21.0.1, server: localhost, request: "GET /react HTTP/1.1", host: "localhost"


что не так?
  • Вопрос задан
  • 429 просмотров
Решения вопроса 1
@Afatar
Проблема здесь
COPY conf.d/* /etc/nginx/conf.d/http/
COPY nginx.conf /etc/nginx/nginx.conf

первая команда заменяет содержимое папки http и там лежи все, что скопировал из conf.d
вторая команда заменяет все что лежит в папке nginx на nginx.conf. Т.е. первая команда ничего ни делает. Вернее вторая убивает все что делает первая.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы