Я пытался запустить некоторые службы с помощью docker -compose. Одним из них является nginx обратный прокси , обрабатывающий разные пути. Один путь ("/ реагирует") - это в контейнере Reaction_app с nginx на порту 80. Исключительно, обратный прокси-сервер работает правильно. Кроме того, если я сервер nginxact_app на порт 80, все работает нормально. Объединение обоих без изменения в конфигурации приводит к 404 для stati c файлов, таких как css и js.
Setup # 1
Вернитесь вперед для пути / теста в Google.
docker -compose.yml
version: "3"
services:
#react_app:
# container_name: react_app
# image: react_image
# build: .
reverse-proxy:
image: nginx:latest
container_name: reverse-proxy
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- '80:80'
nginx .conf (обратный ход) -прокси)
location /test {
proxy_pass http://www.google.com/;
}
Настройка # 2
Нет обратного прокси. Правильный ответ от nginx внутри контейнера Reaction_app.
docker -compose.yml
version: "3"
services:
react_app:
container_name: react_app
image: react_image
build: .
#reverse-proxy:
# image: nginx:latest
# container_name: reverse-proxy
# volumes:
# - ./nginx.conf:/etc/nginx/nginx.conf
# ports:
# - '80:80'
Настройка № 3 (не работает!)
Обратный прокси и приложение React с nginx. Загружает индекс. html, но не удается, поэтому загружайте файлы в / stati c
nginx .conf (обратный прокси-сервер)
location /react {
proxy_pass http://react_app/;
}
docker -compose.yml
version: "3"
services:
react_app:
container_name: react_app
image: react_image
build: .
reverse-proxy:
image: nginx:latest
container_name: reverse-proxy
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- '80:80'
Активация обеих систем приводит к сбою содержимого c. Мне кажется, что обратный прокси-сервер пытается сервер файлы, но не удается (по уважительной причине), потому что нет записи журнала в nginx. Вот конфиг из Reaction_app nginx, возможно, я что-то упустил.
nginx .conf (внутри контейнера Reaction_app)
events {}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
location / {
try_files $uri /index.html;
}
}
}
-> Обновить
Это довольно неудовлетворительный обходной путь - но он работает. Хотя теперь реагирует, маршрутизация перепутана. Я не могу связаться / отреагировать / войти
http {
server {
server_name services;
location /react {
proxy_pass http://react_app/;
}
location /static/css {
proxy_pass http://react_app/static/css;
add_header Content-Type text/css;
}
location /static/js {
proxy_pass http://react_app/statics/js;
add_header Content-Type application/x-javascript;
}
}
}