maximalian

joined 4 weeks ago
[–] [email protected] 1 points 1 week ago
[–] [email protected] 2 points 1 week ago* (last edited 1 week ago) (2 children)
  1. client -> HaProxy -> if keyword --> sub-proxy (random) -> website
  2. client -> HaProxy -> if no keyword --> website
[–] [email protected] -2 points 1 week ago

at what point should one have laughed?

 

I have a server (S-1) with HAProxy and a number of residential proxies (PR-s) as login-passwords-port. There're multiple users who will connect to the internet via S-1.

I want to have HAProxy to forward incomming traffic of the users via a random proxy amoung PR-s with 2 conditions:

  1. only when there's certain, pre-defined keyword in the URL, traffic must be routed via a proxy.
  2. In all other cases, it must go to a requested resource directly as is, without a proxy

How would I implement this?


(1) client -> HaProxy -> if keyword --> sub-proxy (random) -> website

(2) client -> HaProxy -> if no keyword --> website

 

In Squid config, is there any variable - %VAR - that contains the current unique request id or anything similar?

I'll need to pass that into an external script, for instance:

# squi.conf
auth_param basic program %REQUEST_ID(???) /etc/squid/my_auth.py

This may not be an authentication script, this is just an example.

I've searched but haven't found anything about it.

[–] [email protected] 8 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

Man, your autism makes the vaccines stronger.

 

Let's say, I have a python script which handles ACL:

#squid.conf
# [............]

# sub-proxies/peers
cache_peer 01.01.01.99 parent 34433 0 no-query no-digest name=peer1
cache_peer 01.01.02.99 parent 34433 0 no-query no-digest name=peer2
cache_peer 01.01.03.99 parent 34433 0 no-query no-digest name=peer3
cache_peer 01.01.04.99 parent 34433 0 no-query no-digest name=peer4


external_acl_type my_acl_helper ttl=30 %LOGIN ./my_acl_helper.py
acl session_acl external my_acl_helper

# [............]

In my_acl_helper.py there's some tricky logic of selecting a peer to be used for a request.

How should my_acl_helper.py report back to Squid which peer it's choosen? In what format? As far as I've found out, it could only be OK or ERR. But the IP:port or the alias of a peer will be needed as well. How?