Что я должен использовать приложение HTML Nginx или / и балансировки нагрузки? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть приложение index.html, которое выполняет приложение js с помощью nginx.https://github.com/daleharvey/pacman

Я хотел бы докеризировать это приложение с 3 контейнерами приложения и балансировкой нагрузки, которые выбрали с алгоритмами циклического перебора 1 из 3 контейнеров.

Но мое html-приложение с nginx, моя балансировка нагрузки - тоже nginx?

my docker-compose.yml:

version: '3'

services:
  pacman1:
    build: ./pacman
  pacman2:
    build: ./pacman
  pacman3:
    build: ./pacman

   nginx:
    image: nginx:latest
    container_name: production_nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports: ['8000:80']

  redis:
    image: redis
    ports: ['6379']

мой Dockerfile html app:

#Start with current nginx
FROM nginx:latest
#Update package manager and install git
RUN apt-get update && apt-get install -y \
        git
#Clean the html root dir
RUN rm -R /usr/share/nginx/html/
#Clone pacman app from git
RUN git clone https://github.com/daleharvey/pacman.git /usr/share/nginx/html/
#Modify files for web serving
RUN chmod -R 755 /usr/share/nginx/html/*
RUN chown -R www-data /usr/share/nginx/html/*

EXPOSE 3000

#USAGE:
# docker run --name pacman -d -p 8080:80 pacman

my nginx.conf

worker_processes 4;

events { worker_connections 1024; }

http {

        upstream mysite {
              least_conn;
              server pacman1:3000;
              server pacman2:3000;
              server pacman3:3000;
        }

        server {
          listen 8080;
              server_name _;
          root /usr/share/nginx/html;
          index index.html;
              location / {
                proxy_pass http://mysite;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
              }
        }
}   

Пожалуйста, почему это не работает?потому что у nginx есть порт 80 по умолчанию?Как я могу запустить мое приложение HTML без nginx?спасибо.

1 Ответ

0 голосов
/ 19 сентября 2019

Nginx - это то, что запускает ваше HTML-приложение.Вам понадобится Nginx (хороший выбор) или другой веб-сервер, такой как Apache, для запуска приложения HTML.

Вы можете создать свое приложение с NodeJS или чем-то, что включает в себя сервер, однако использование Nginx, вероятно, является лучшим решением.

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