Рубрики
Uncategorized

Docker 201: Используйте Nginx в качестве обратного прокси для Nodejs Server в 2020 году! 📦 🙌. (Практическое руководство)

Я пропущу «что / почему докер?» Часть, чтобы сделать это прямо до точки! 🤝 Цель: мы собираемся использовать Nginx … Теги с узлом, докером, производительностью, дежопами.

Я пропущу «что/почему докер?» Часть, чтобы сделать это прямо до точки! 🤝

Цель: Мы будем использовать nginx в качестве обратного прокси для сервера Nodejs. ⧚

Для этого я буду использовать 2 образы докера из Docker Hub — один для nodejs и еще один для nginx 🤞

Давайте посмотрим на это в действии!

Я уже установил —

  • Nodejs
  • Докер

Мы создадим простой сервер узла. Мы будем использовать http Модуль из узла и сделайте простой HTTP-сервер. Server.js Файл содержит код нашего сервера

var http = require('http');

var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Node & Docker Running...");
});

server.listen(3333);

console.log("Node HTTP Server started at http://localhost:3333/");

Если мы запустим Node Server.js На нашем терминале он начнет сервер на 3333 порта на localhost. Мы можем открыть браузер и ударить http://localhost: 3333/ И мы можем видеть сервер отправляет текст Узел и докер работает … Отказ Потрясающий 👏.

Теперь мы хотим создать документ Docker для нашего сервера узла. Для этого нам нужно создать файл с именем Dockerfile с приведенными ниже командами-

FROM mhart/alpine-node
COPY server.js .
EXPOSE 3333
CMD node server.js

Вот, я использовал MHART/ALPINE-NODE (Минимальный Node.js Docker Image) для наличия Nodejs Environment.

Выставлять 3333 средства — 3333 порт предназначен для публикации.

Теперь, когда у нас есть наш Dockerfile Готовы, мы построим изображение докера из этого файла. Мы можем запустить на терминале

docker build -t docknode .

* Здесь ocknode это имя изображения. Мы можем использовать любое имя.

Я запускаю изображение Docker, который сделает контейнер для нас

docker run -d -p 3333:3333 --name node-server  docknode

Я использовал -d что поможет запустить контейнер на заднем плане.

После запуска этой команды наш Nodejs Server должен работать внутри контейнера Docker с именем Узел-сервер Отказ Теперь, если я открою любой браузер и нажмите http://localhost: 3333 мы можем видеть сервер запущен 🎉

Хорошо, потрясающий! Как работает наш сервер Nodejs внутри узла Docker Image, нам нужно добавить nginx Обратный прокси-сервер Далее.

Мы будем использовать официальное изображение Nginx из Dockerhub. Давайте создадим Dockerfile для этого.

FROM nginx
COPY default.conf /etc/nginx/conf.d/

Я собираюсь создать файл под названием default.conf Для Nginx со следующими конфигурациями —

server {
  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://server:3333;
  }
}

Обратите внимание, что здесь в конфигурациях, у нас есть http://server:3333 . Этот 3333 это порт из наших Nodejs Docker Consier. Я приду к сервер Часть позже в этой статье.

Пойдем на терминал и запустить-

docker build -t docknginx .

Это построит изображение докера для Nginx. После запуска команды мы увидим что-то вроде

И, чтобы убедиться, что наше изображение доступно в нашей локальной машине, мы можем запустить команду ниже, чтобы увидеть список

docker images

Обидно! Мы можем видеть, как наши изображения доступны здесь 👏

Поскольку наша цель — иметь Nginx в качестве обратного прокси для нашего Nodejs Server. Когда мы запустим изображение NGINX, нам нужно связать сервер Nodejs в Nginx.

Сделать это, я запускаю команду ниже на терминале

docker run -d -p 8080:80 --link node-server:server --name nginx-proxy  docknginx

Здесь, —ссылка помогает связать наш контейнер Nodejs к этому контейнеру Nginx. Если вы дважды проверьте, я назвал контейнер Nodejs как Узел-сервер . А также это : сервер Используется внутри наших конфигураций Nginx. 🤝

После запуска команды, если теперь мы идем в наш браузер и нажмите http://localhost: 8080/ , мы можем видеть наше приложение Nodejs сейчас работает на этом порту 🎉

На самом деле мы на самом деле ударим на Nodejs Server через Nginx, так как он работает в качестве обратного прокси.

Потрясающий 🙌.

Я надеюсь, тебе понравилось. И если вы еще не использовали Docker, я думаю, вы должны Попробуйте Это в 2020 году!

Увидимся в моей следующей статье.

До этого, ура! 👋

Как я пытаюсь внести содержание в Интернете, вы можете купить мне кофе для моих часов, потраченных на все эти ❤️😊 🌸

Оригинал: «https://dev.to/destrodevshow/docker-201-use-nginx-as-a-proxy-for-nodejs-server-in-2020-practical-guide-57ji»