Nginx: настройка проксирования

Задача: есть локальный web сервис запущенный…ну например в докере. Не суть в общем где запущен. Может быть просто какой то локальный сервис типа web интерфейса к zigbee2mqtt: htpp://192.168.8.1:8080 Необходимо дать возможность открывать его в браузере, с нормальным ssl сертификатом ну и всё такое. Вот собственно для этого и нужно проксирование.

Решение: первым делом получим сертификат для домена. Для этого добавим в настройки nginx следующие строчки:

server {
        listen 80;
        server_name ваш_домен;
        root /var/www/m;
        index index.php;
}

После чего получим сертификат:

service nginx restart
certbot certonly --webroot -w /var/www/m -d ваш_домен

Далее настройки nginx изменим на:

server {
        listen 80;
        listen [::]:80;
        listen 443 ssl;
        server_name ваш_домен;
        if ($scheme = 'http') {return 301 https://$host$request_uri;}
        ssl_certificate     /etc/letsencrypt/live/ваш_домен/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/ваш_домен/privkey.pem;
        location / {
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_pass http://192.168.8.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
        }
}

Что тут есть?

  1. Переадрессация с http на https
  2. Подсовывание сертификата
  3. Проксирование http://192.168.8.1:8080 на ваш_домен

Собственно и всё

Ускоряем телеграм при помощи mtproxy

Для этого понадобится выделенный сервер, желательно в зоне РФ. Самый простой способ — использование готового скрипта с https://github.com/nolaxe/install-MTProxy/blob/main/README.md

Просто скрипт для организации нагрузочного тестирования сайта

Задача: по-быстрому протестировать на скольки соединениях сайт «ляжет».

Решение: напишем скрипт на python, который в многопоточном режиме будет дергать определенную страницу.

#!/usr/bin/env python3
# encoding: utf-8
import sys
import requests
import threading
import time

BASE_URL = "https://щшощшукащшук.ru"
shreads=100
poz=0
def fetch_post(pz):
   cnt=threading.active_count();
   print(f"- задача {poz}, потоков {cnt}")
   data_to_post = {"erfe	": "-99","erfew":"werferwfer"}
   response = requests.post(f"{BASE_URL}", json=data_to_post)
   print(response.status_code)
   print(response.text)
   return 0

while True:
    if threading.active_count()<shreads:
        poz=poz+1
        t = threading.Thread(target=fetch_post, args=(poz,))
        t.start()

Шпаргалка по использованию docker

1) Установка на Ubuntu:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin
docker --version

    2) Установка приложения через docker

    docker pull jetbrains/teamcity-server

    3) Запуск:

    docker run --name teamcity-server-instance \
    -v <path to data directory>:/data/teamcity_server/datadir \
    -v <path to logs directory>:/opt/teamcity/logs \
    -p <port on host>:8111 \
    jetbrains/teamcity-server

    4) Автозапуск после перезагрузки сервера:

    docker update --restart=always teamcity-server-instance 

    Чтиво за последнее время

    Попадос. Засеев Гурам. Мир EVO. нейросети, аграфы, древние, Джоре. Ну в общем то не особо захватывающий и новый сюжет. Читабельность 3/5

    Имя нам Легион. Дворничев Дмитрий, Лисицин Евгений. Сюжет: Одного товарища украли инопланетяне и заставляют выполнять задания внутри различного рода клонах. Начало интересное, потому скучновато. Не дочитал. Читабельность 3/5

    Разлом в Небесах. Гамильтон Питер. Сюжет: Корабль поколений. Летят. Уже начинают забывать зачем и куда. Но случается авария. И вдруг оказывается что корабль давно уже под контролем инопланетян. Читабельность 5/5

    Штурм. Панченко Андрей. Сюжет: звездолет спасается от неведомой (не раскрыто по сюжету) опасности в другую галактику. А она уже занята. Не дочитал, скучновато. Читабельность 3/5

    Звезданутый Технарь. Герко Гизум. Сюжет: Некий чел купил себе ржавое ведро и полетел в космос чтоб стать «космическим мусорщиком». Только всё пошло не так. Слишком много деталей, и вся книга одно сплошное выживание на взлете этого недокарабля. Интересно только пару страниц начала. Читабельность 2/5

    Шепот 1-3. Сиба С.И. Очередная книга из вселенной EVO. В принципе читабельно, но ничего нового. Но таки дочитал. Читабельность 4/5

    Вычислитель. Тетралогия. Громов Александр Николаевич. Перечитка, плюс третья книга вышла. Когда первый раз читал, еще её не было. В принципе нормально. Весь сюжет вокруг одного товарища который умеет хорошо просчитывать вероятность событий в голове. В первой-второй части есть даже некая любовная линия. В принципе читабельность 5/5

    Маска конструктра. Захар Зарипов. Сюжет: на марс прибывает первая колонизационнами миссия. Но всё идет не так (с). Исчезают инструменты и целые механизмы. Кто за этим стоит? Сюжет вроде и интересный, но написано так себе. Не дочитал. Читабельность 3/5

    Детское:

    Борис Жидков «Про обезьянку». Интересно. Но ребенку многие слова не понятны уже. Пришлось «переводить»

    1 2 3 303