From 54db3d78b41e81189ba6d6c6cc9c5f7ba6024a68 Mon Sep 17 00:00:00 2001 From: vladp Date: Wed, 11 Mar 2026 15:17:35 +0700 Subject: [PATCH] dev add config for nginx --- README.md | 103 +++++++++++++++++- .../service/search/SearchImageService.java | 28 ++--- 2 files changed, 116 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2e80afb..7e64986 100644 --- a/README.md +++ b/README.md @@ -388,4 +388,105 @@ sudo ln -s /etc/nginx/sites-available/not-copy /etc/nginx/sites-enabled/ sudo nginx -t # Рестарт -sudo systemctl reload nginx \ No newline at end of file +sudo systemctl reload nginx + + +--------------------------------------------- + +# ПОЛНАЯ ИНСТРУКЦИЯ: НАСТРОЙКА ПРОКСИ ДЛЯ ОБХОДА БЛОКИРОВОК SEARCHAPI.IO + +## Данные для подключения к прокси-серверу +IP: 193.46.217.94 +Порт HTTP: 3128 +Порт SOCKS: 1080 +Логин SSH: root +Пароль SSH: u7nRtsD6 + +## 1. Настройка прокси-сервера +```bash +# Подключаемся к серверу +ssh root@193.46.217.94 +# Вводим пароль: u7nRtsD6 + +# Обновляем систему и устанавливаем пакеты +yum update -y +yum install -y epel-release net-tools nano +yum install -y 3proxy + +# Создаем конфигурацию +mkdir -p /etc/3proxy +cat > /etc/3proxy/3proxy.cfg << 'EOF' +nserver 8.8.8.8 +nserver 8.8.4.4 +timeouts 1 5 30 60 180 1800 15 60 +daemon +log /var/log/3proxy/3proxy.log +logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T" +rotate 30 +auth none +allow * * * * * +proxy -p3128 +socks -p1080 +EOF + +# Создаем папку для логов и запускаем прокси +mkdir -p /var/log/3proxy +/usr/bin/3proxy /etc/3proxy/3proxy.cfg + +# Проверяем, что запустилось +ps aux | grep 3proxy +netstat -tulpn | grep -E '3128|1080' + +# Настраиваем файрвол +firewall-cmd --permanent --add-port=3128/tcp +firewall-cmd --permanent --add-port=1080/tcp +firewall-cmd --reload +firewall-cmd --list-ports + +# Проверяем локальную работу прокси +curl -x http://127.0.0.1:3128 https://api.ipify.org +# Должен вернуть: 193.46.217.94 + +# Настраиваем автозапуск +echo "/usr/bin/3proxy /etc/3proxy/3proxy.cfg" >> /etc/rc.local +chmod +x /etc/rc.local + + +# Проверяем доступность прокси +ping -c 4 193.46.217.94 +curl -x http://193.46.217.94:3128 https://api.ipify.org +# Должен вернуть: 193.46.217.94 + +# Проверяем работу с SearchAPI через прокси +curl -x http://193.46.217.94:3128 "https://www.searchapi.io/api/v1/search?engine=google_lens&api_key=5jyYZC8jSaxhZTwjMUhwtAXi&url=https://dev-workspace.not-copy.com/api/files/public/76d06557-6df1-4fcd-a273-050ec6a35faf&search_type=exact_matches" -o test.json +ls -la test.json +tail -20 test.json +# Файл должен быть полным (заканчиваться на '}') + + + +ps aux | grep 3proxy # Проверка статуса +netstat -tulpn | grep -E '3128|1080' # Проверка портов +tail -f /var/log/3proxy/3proxy.log # Просмотр логов +killall 3proxy # Остановка прокси +/usr/bin/3proxy /etc/3proxy/3proxy.cfg # Запуск прокси + + +firewall-cmd --permanent --remove-port=3128/tcp +firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_ТВОЕГО_СЕРВЕРА" port port="3128" protocol="tcp" accept' +firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_ТВОЕГО_СЕРВЕРА" port port="1080" protocol="tcp" accept' +firewall-cmd --reload + + +На прокси-сервере: +bash +ps aux | grep 3proxy # Проверка статуса +netstat -tulpn | grep -E '3128|1080' # Проверка портов +tail -f /var/log/3proxy/3proxy.log # Просмотр логов +killall 3proxy # Остановка прокси +/usr/bin/3proxy /etc/3proxy/3proxy.cfg # Запуск прокси + +На основном сервере: +bash +curl -x http://193.46.217.94:3128 https://api.ipify.org # Проверка прокси +telnet 193.46.217.94 3128 # Проверка порта \ No newline at end of file diff --git a/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java b/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java index fd18efd..5d59ff3 100644 --- a/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java +++ b/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java @@ -59,8 +59,8 @@ public class SearchImageService { .followRedirects(true) .followSslRedirects(true) .retryOnConnectionFailure(true) - .protocols(Arrays.asList(Protocol.HTTP_1_1)) -// .connectionPool(new ConnectionPool(0, 1, TimeUnit.NANOSECONDS)) +// .protocols(Arrays.asList(Protocol.HTTP_1_1)) + .connectionPool(new ConnectionPool(0, 1, TimeUnit.NANOSECONDS)) .build(); this.googleHttpClient = new OkHttpClient.Builder() @@ -72,8 +72,8 @@ public class SearchImageService { .followRedirects(true) .followSslRedirects(true) .retryOnConnectionFailure(true) - .protocols(Arrays.asList(Protocol.HTTP_1_1)) -// .connectionPool(new ConnectionPool(0, 1, TimeUnit.NANOSECONDS)) +// .protocols(Arrays.asList(Protocol.HTTP_1_1)) + .connectionPool(new ConnectionPool(0, 1, TimeUnit.NANOSECONDS)) .build(); this.objectMapper = new ObjectMapper(); @@ -148,20 +148,20 @@ public class SearchImageService { .addQueryParameter("t_", String.valueOf(System.currentTimeMillis())) .build(); -// Request request = new Request.Builder() -// .url(url) -// .header("Accept", "application/json") -// .header("User-Agent", "Mozilla/5.0") -// .build(); - Request request = new Request.Builder() .url(url) - .header("Accept", "*/*") - .header("User-Agent", "PostmanRuntime/7.29.2") - .header("Accept-Encoding", "gzip, deflate") - .header("Connection", "keep-alive") + .header("Accept", "application/json") + .header("User-Agent", "Mozilla/5.0") .build(); +// Request request = new Request.Builder() +// .url(url) +// .header("Accept", "*/*") +// .header("User-Agent", "PostmanRuntime/7.29.2") +// .header("Accept-Encoding", "gzip, deflate") +// .header("Connection", "keep-alive") +// .build(); + long start = System.currentTimeMillis(); try (Response response = client.newCall(request).execute()) {