UMGUM.COM (лучше) 

Шаблон для проксирования ( Шаблон набора правил проксирования от фронтального web-прокси тестовому стенду "Docker + Bash". )

4 мая 2019  (обновлено 17 июня 2019)

Эта публикация скрыта. Она доступна только по прямой ссылке.

OS: "Linux Debian 9 (Stretch)", "Linux Ubuntu 18.04 LTS (Bionic Beaver)".
Apps: "Bash", "Docker" & etc.

В этой заметке описан один из этапов реализации поставленной в вышестоящей публикации задачи автоматизации процедур развёртывания тестовых стендов из docker-контейнеров.

После запуска каждого контейнера "Nginx" каждого тестового стенда необходимо будет добавить к конфигурации фронтального web-прокси набор правил проксирования адресованного этому тестовому стенду трафика - автоматизируем это скриптом-шаблоном:

# vi /usr/local/etc/devops/lib/bunch-nginx-proxying.sh.snippet


#!/bin/bash
# This file contains the code snippet for the shell Bash v.4 (Bourne again shell).
# Файл содержит фрагмент кода для командного интерпретатора Bash v.4 (Bourne again shell).

cat << EOF > "/var/opt/devops/front/etc/nginx/bunch.d/${FQDN[$I]}.conf"

# Приём и передача HTTP-трафика
server {
  server_name ${FQDN[$I]};
  listen 80;
  # Проксирование Nginx-контейнеру тестового стенда
  location / {
    $(echo && echo "${FQDN_ACL_CONFIGURATION[$I]}" && echo)
    proxy_pass http://${VIAIPWOM}:80;
    proxy_set_header X-Scheme http;
    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-Host \$host;
    proxy_set_header X-Forwarded-Server \$host;
    proxy_set_header X-Forwarded-Proto http;
    proxy_set_header X-NginX-Proxy true;
    # (включение поддержки HTTPv1.1 и WebSocket)
    proxy_http_version 1.1;
    proxy_set_header Upgrade \$http_upgrade;
    proxy_set_header Connection "upgrade";
  }
  # Проксирование обработчику LetsEncrypt-запросов
  location ~ ^/.well-known/acme-challenge/ {
    proxy_pass http://letsencrypt.example.net:880;
    proxy_set_header Host \$host;
  }
}

# Приём и передача HTTPS-трафика
server {
  server_name ${FQDN[$I]};
  listen 443 ssl http2;
  $(echo && echo "${FQDN_SSL_CONFIGURATION[$I]}" && echo)
  # Проксирование Nginx-контейнеру тестового стенда
  location / {
    $(echo && echo "${FQDN_ACL_CONFIGURATION[$I]}" && echo)
    proxy_pass https://${VIAIPWOM}:443;
    proxy_ssl_verify off;
    proxy_ssl_server_name on;
    proxy_ssl_session_reuse on;
    proxy_set_header X-Scheme https;
    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-Host \$host;
    proxy_set_header X-Forwarded-Server \$host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Ssl on;
    proxy_set_header X-NginX-Proxy true;
    # (включение поддержки HTTPv1.1 и WebSocket)
    proxy_http_version 1.1;
    proxy_set_header Upgrade \$http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}
EOF


Заметки и комментарии к публикации:


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