Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit f63be46
Showing
2 changed files
with
115 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# proxy-checker-docker | ||
|
||
Комплект по проверке прокси адресов. Включает в себя: | ||
|
||
* [proxy-checker](https://github.com/Ichinya/proxy_cheker) - проверка прокси, потребляем примерно 15мб ОЗУ на каждый | ||
* [proxy-producer](https://github.com/Ichinya/proxy_producer) - собирает списки прокси и отправляет на проверку, потребляем примерно 12мб ОЗУ | ||
* rabbitmq - менеджер очередей, через него происходит отправка на проверку. Уходит на работа 150Мб | ||
* mysql - база данных для хранения списков и результатов. Нужно для работы 300-500Мб | ||
|
||
## Запуск | ||
|
||
Клонируем исходники с гитхаб. Потом будет сделаны отдельные образы, чтобы запускалось двумя командами. | ||
Запускаем сборку. | ||
После запуска отправляем команды на сбор прокси и, вторую команду, на отправку собранных прокси на проверку | ||
|
||
```shell | ||
git clone https://github.com/Ichinya/proxy-checker-docker.git . | ||
cd proxy-checker-docker | ||
git clone https://github.com/Ichinya/proxy_producer.git . | ||
git clone https://github.com/Ichinya/proxy_cheker.git . | ||
|
||
docker compose -f "docker-compose.yaml" up -d --build | ||
|
||
docker exec proxy_producer python3 update_list_proxy.py | ||
docker exec proxy_producer python3 send_to_mq.py | ||
``` | ||
|
||
## Примечания | ||
В файле `docker-compose.yaml` можно найти у proxy-checker `replicas: 2` - это количество чекеров. Каждый потребляем примерно 15-20мегабайт ОЗУ. Но из-за небольшого количество сайтов проверок ip адресов получается большое количество ошибок. Нормально работает примерно 5 чекеров. | ||
|
||
## Возможно появится: | ||
* Работа без mysql (для уменьшения потребляемой памяти), возможно будет использован sqlite3 | ||
* Работа с файлами, закидываем файлы со списками. После проверки - получаем готовый список | ||
* Будут сделаны готовые образы | ||
* Будет добавлен Gearman, так как кролик немало жрёт ОЗУ. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
version: '3' | ||
|
||
services: | ||
rabbit_mq: | ||
image: rabbitmq:management-alpine | ||
container_name: rabbit_mq | ||
ports: | ||
- 5672:5672 | ||
- 15672:15672 | ||
volumes: | ||
- rabbit_mqdata:/usr/share/rabbitmq/data | ||
deploy: | ||
resources: | ||
limits: | ||
memory: 200M | ||
reservations: | ||
memory: 100M | ||
|
||
producer: | ||
build: proxy_producer | ||
container_name: proxy_producer | ||
depends_on: | ||
- rabbit_mq | ||
- database | ||
environment: | ||
AMQP_URL: 'amqp://rabbit_mq?connection_attempts=10&retry_delay=10' | ||
DB_HOST: database | ||
DB_NAME: 'homestead' | ||
DB_PORT: 3306 | ||
DB_USER: 'user' | ||
DB_PASS: 'pass' | ||
deploy: | ||
resources: | ||
limits: | ||
memory: 30M | ||
reservations: | ||
memory: 100M | ||
|
||
proxy-checker: | ||
build: | ||
context: proxy_checker | ||
depends_on: | ||
- rabbit_mq | ||
- database | ||
environment: | ||
AMQP_URL: 'amqp://rabbit_mq?connection_attempts=10&retry_delay=10' | ||
deploy: | ||
mode: replicated | ||
replicas: 2 | ||
resources: | ||
limits: | ||
memory: 30M | ||
reservations: | ||
memory: 100M | ||
|
||
database: | ||
image: mysql:8 | ||
container_name: mysql | ||
command: --default-authentication-plugin=mysql_native_password | ||
restart: always | ||
volumes: | ||
- ./db:/var/lib/mysql | ||
ports: | ||
- 3306:3306 | ||
environment: | ||
MYSQL_ROOT_USER: root | ||
MYSQL_ROOT_PASSWORD: root | ||
MYSQL_DATABASE: homestead | ||
MYSQL_USER: user | ||
MYSQL_PASSWORD: pass | ||
deploy: | ||
resources: | ||
limits: | ||
memory: 500M | ||
reservations: | ||
memory: 200M | ||
|
||
volumes: | ||
rabbit_mqdata: | ||
driver: local |