Я не знаю, что такое имя для такого прокси-сервера, вы можете исправить свой вопрос.
Когда я ищу прокси-сервер в google, многие реализуют как maproxy или a-python-proxy-in-less-than-100-lines-of-code. Эти серверы прокси, похоже, просто запрашивают удаленный сервер для получения определенного URL-адреса.
Я хочу создать прокси-сервер, который содержит пул прокси (список прокси-серверов http/https) и имеет только один IP-адрес и один порт для обслуживания входящих запросов. Когда запрос поступит, он выберет прокси из пула и выполнит этот запрос и вернет результат.
Например, у меня есть VPS, который IP '192.168.1.66'. Я запускаю прокси-сервер на этом VPS с IP-адресом 127.0.0.1 и порт 8080.
Затем я могу использовать этот прокси, как показано ниже.
import requests
url = 'http://www.google.com'
headers = {
...
}
proxies = {
'http': 'http://192.168.1.66:8080'
}
r = requests.get(url, headers=headers, proxies=proxies)
Я вижу некоторый impelement как:
from twisted.web import proxy, http
from twisted.internet import reactor
from twisted.python import log
import sys
log.startLogging(sys.stdout)
class ProxyFactory(http.HTTPFactory):
protocol = proxy.Proxy
reactor.listenTCP(8080, ProxyFactory())
reactor.run()
Это работает, но это так просто, что я понятия не имею, как это работает и как улучшить этот код для использования пула прокси.
Пример потока:
из hidu/proxy-manager, которые пишут golang.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ client (want visit http://www.baidu.com/) +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
| via proxy 127.0.0.1:8090
|
V
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ + proxy pool +
+ proxy manager listen ++++++++++++++++++++++++++++++++++
+ on (127.0.0.1:8090) + http_proxy1,http_proxy2, +
+ + socks5_proxy1,socks5_proxy2 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
| choose one proxy visit
| www.baidu.com
|
V
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ site:www.baidu.com +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++