1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/monksoul-docker-doc

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
14、Docker + Nginx 实现分布式集群.md 4.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 07.03.2025 23:17 2ab012e

@toc

14. Docker + Nginx реализация распределённой группы серверов, балансировка нагрузки

Архитектурная схема

Балансировка нагрузки, высокий уровень доступности, кэширование, RAC архитектура

По умолчанию конфигурация nginx.conf

user  nginx;
worker_processes  1; # Настройка рабочих процессов, количество должно совпадать с количеством потоков вашего компьютера

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;  # Настройка количества запросов, которые может обрабатывать один поток за секунду
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                       '$status $body_bytes_sent "$http_referer" '
                       '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf; # Включение виртуальных хостов
}

По умолчанию конфигурация виртуального хоста

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # переадресация страниц ошибок сервера на статическую страницу /50x.html
    #
    error_page    405  /50x.html;
}
```    ## Конфигурация обратного прокси-сервера
    ## Оригинал был прерван здесь, поэтому этот раздел остается пустым согласно правилам перевода.
    

upstream myweb { #myproject — это имя, заданное вручную #ip_hash; #включение этого параметра указывает на использование IP-адреса для распределения запросов, что может решить проблему сессий server 127.0.0.1:8080 weight=1; #чем больше значение weight, тем выше приоритет сервера и тем вероятнее он будет выбран для обслуживания запроса server 127.0.0.1:8081 weight=1; #все мои серверы находятся локально, поэтому используется локальный IP-адрес, но его можно заменить на соответствующий IP-адрес или доменное имя }


## Настройка маршрутов

```nginx
location / {
    #если требуется получить реальный IP-адрес клиента, можно использовать следующие три строки для установки хоста и адреса клиента
    #proxy_set_header Host $host;
    #proxy_set_header X-Real-IP $remote_addr;
    #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    root   /usr/share/nginx/html;
    index  index.html index.htm;
    proxy_pass http://myweb;  #myweb — это имя, определённое ранее в секции upstream конфигурационного файла nginx.conf
}

Развертывание нескольких экземпляров

docker run -d -p 8081:8081 --name first-nginx -v ~/workplace/nginx/html:/usr/share/nginx/html -v ~/workplace/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/workplace/nginx/logs:/var/log/nginx -v ~/workplace/nginx/conf.d:/etc/nginx/conf.d nginx

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/monksoul-docker-doc.git
git@api.gitlife.ru:oschina-mirror/monksoul-docker-doc.git
oschina-mirror
monksoul-docker-doc
monksoul-docker-doc
master