NGNIX Loader balancer + SSL в Docker
Настройка NGNIX в качестве балансировщика нагрузки. Используем Docker.
Пулим образ nginx:
$ sudo docker pull nginx
Запускаем, если хочется побаловаться, как простой HTTP сервер:
$ sudo docker run --name docker-nginx -p 8888:80 -v /var/docker-nginx/html:/usr/share/nginx/html -v /var/docker-nginx/conf.d:/etc/nginx/conf.d -d nginx
В папке /var/docker-nginx/html создаем файл index.html
Впапке var/docker-nginx/conf.d создаем файл example.conf:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost localhost.com;
root /usr/share/nginx/html;
index index.html;
try_files $uri /index.html;
}
Перезапускаем:
$ sudo docker restart docker-nginx
После чего в браузере проверяем: http://localhost:8888 После экспериментов прибиваем контейнер.
NGNIX Loader balancer + SSL
В папке var/docker-nginx/conf.d:
файл backend.conf:
upstream backend {
server 192.168.1.84:8888 weight=10 max_fails=1 fail_timeout=30s;
server 192.168.1.84:8889 weight=5 max_fails=1 fail_timeout=30s;
server 192.168.1.84:8890 backup;
# Send visitors back to the same server each time.
#ip_hash;
}
#weight - веса
#fail_timeout - время, которое приложение считается упавшим если случилось max_fails фэйлов
#backup - резервный сервер. получает запросы только когда все залегли
server {
location / {
proxy_pass http://backend;
proxy_connect_timeout 5s;
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;
}
}
файл backend_ssl.conf:
server {
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
server_name backend;
ssl_certificate /etc/nginx/conf.d/nginx.crt;
ssl_certificate_key /etc/nginx/conf.d/nginx.key;
ssl_dhparam /etc/nginx/conf.d/dhparam.pem;
location / {
proxy_pass http://backend;
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;
}
}
В этой же папке лежат файлы: dhparam.pem, nginx.crt, nginx.key. Они заранее сгенерячены для тестов (самоподписанные):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /var/docker-nginx/conf.d/nginx.key -out /var/docker-nginx/conf.d/nginx.crt
sudo openssl dhparam -out /var/docker-nginx/dhparam.pem 2048
Запускаем Nginx в контейнере с пробросом двух портов (можно один)
sudo docker run --name docker-nginx -p 8888:80 -p 8443:443 -v /var/docker-nginx/html:/usr/share/nginx/html -v /var/docker-nginx/conf.d:/etc/nginx/conf.d -d nginx
Cтучим:
http://backend:8888
или
https://backend:8443
Успехов.
Дивись також:
- Справочник команд по Docker. Как поднять Swarm
- MongoDB Replica Set в Docker
- Справочник команд MongoDB
- Как настроить NGNIX Loader balancer + SSL в Docker
- Технология Push notifications. Как сделать на сайте
- Пример Websocket сервера и Websocket клиента. Пример простого чата на websocket
- Как использовать Memcached в Python
- Как использовать Radis в Python
Здравствуйте, как с Вами можно связаться? Нужно Ваша помощь. Загорелся идеей: определение положения предмета с отрисовкой трека, т.е. визуально наблюдать изменение положения предмета в пространстве с отрисовкой на временной шкале(трек).
Недавні записи
- Text to speech. Українська мова
- LCD Display ST7567S (IIC)
- Розпізнавання мови (Speech recognition)
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
- Модуль драйверів напівмосту IGBT транзисторів
- Драйвер IGBT транзисторів на A316J
- AS5600. Варіант встановлення на BLDC мотор
Tags
docker sensors rtc led timer wifi remap sms css websocket mongodb bme280 rfid bluetooth esp8266 nodemcu bkp piezo bmp280 i2c mpu-6050 encoder examples avr brushless ngnix nvic displays bldc java-script pmsm barometer pwm lcd ethernet stm32 raspberry-pi capture usart gpio exti atmega meteo solar smd dma adc eeprom eb-500 flask python ssd1306 uart options flash mpx4115a html gps st-link 3d-printer servo dc-dc foc git books battery hih-4000 watchdog dht11 web tim programmator ssd1331 mpu-9250 usb rs-232 motor max1674 soldering
Архіви