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
Здравствуйте, как с Вами можно связаться? Нужно Ваша помощь. Загорелся идеей: определение положения предмета с отрисовкой трека, т.е. визуально наблюдать изменение положения предмета в пространстве с отрисовкой на временной шкале(трек).
Tags
pmsm mongodb bme280 bmp280 exti nodemcu timer ssd1331 dma sms meteo max1674 foc stm32 i2c eeprom adc usart git java-script programmator ssd1306 watchdog nvic html flask raspberry-pi st-link mpu-9250 remap examples rs-232 hih-4000 css rtc bkp bluetooth bldc motor esp8266 mpu-6050 encoder capture soldering ngnix wifi usb flash rfid displays tim battery avr smd websocket 3d-printer barometer books lcd python servo eb-500 atmega web pwm piezo mpx4115a uart dht11 solar gps options dc-dc ethernet brushless docker sensors gpio led
Архіви