Find Jobs
Hire Freelancers

Linux Proxy Controller/Forwarder

$250-750 USD

Zavřený
Zveřejněno přibližně před 5 roky

$250-750 USD

Zaplaceno při doručení
I need a Linux-based proxy controller/forwarded that will take requests from users, and use a proxy from our database to relay it. Preferably, you would use something out-of-the-box like Squid Proxy Server and modify it to achieve the below. ============================ DB STRUCTURE ============================ Sample DB structure: [login to view URL] ============================ GENERAL OUTLINE ============================ 1. User specifies proxy conditions (ie. “city”) to one of their assigned ports (“PortID”) 2. User specifies {UserID}.[login to view URL]:{PortID} in their browser 3. If more than X concurrent threads for PortID for the particular UserID, deny the request. The proxy controller should be able to limit the number of concurrent threads per port for each user 4. "[login to view URL]" selects working proxy from DB based on PortID conditions in #1 > If requested URL contains “google” but google != 1 for the proxy, then a new proxy is assigned 5. If request fails, new proxy matching conditions in #2 is assigned 6. Repeat #4 until the request is successful 7. "[login to view URL]" passes the response back to user's browser Note that the proxy server should be able to: - Intercept requests (ie. “[login to view URL]”) and change proxy based on it - Query the DB for a proxy to use based on the user’s port conditions - Forward user requests to the selected HTTPs/Socks4/Socks5 proxy from the DB - Limit the number of concurrent threads to forward proxies and user's port ============================ DETAILED WORKFLOW ============================ 1. User sets proxy criteria in the DB ("PortID") > ie. PortID "1" for UserID "a698j64p" is set to country=US, city=New York, isp=Comcast, rotate_seconds=300 >> In the above, user created PortID where they only want proxies from Comcast ISP in New York, and the proxy should rotate every 5 minutes 2. User will configure HTTP(s) or Socks4/5 proxy in their browser that points to: {UserID}.[login to view URL]:{PortID} > ie. [login to view URL] 3. If PortID for UserID has over X simultaneous threads/connections, deny it with an error (we want to limit the number of concurrent threads per port). Otherwise, continue to next step 4. "[login to view URL]" fetches PortID criteria from #1 and selects matching proxies in the DB > ie. SELECT [login to view URL],proxy_ip,proxy_port FROM lists LEFT JOIN logs ON [login to view URL] = [login to view URL] LEFT JOIN ports ON [login to view URL] = [login to view URL] WHERE [login to view URL] LIKE "comcast" AND lists.total_fail_users < 3 AND lists.total_fail_reqs < 3 AND lists.current_threads < lists.max_threads AND ([login to view URL] IS NULL OR logs.last_used < (NOW() - INTERVAL 60 MINUTE) AND ports.userID="a698j64p" AND ports.port=1 SELECT [login to view URL],[login to view URL],[login to view URL] FROM lists LEFT JOIN logs ON [login to view URL] = [login to view URL] LEFT JOIN ports ON lists.port=[login to view URL] WHERE [login to view URL] < 5 OR [login to view URL] IS NULL WHERE: - total_fail_users: # of users that encountered failure on the proxy - total_fail_reqs: #of requests (across all users) that encountered failure on the proxy - current_threads: To not overwhelm proxies, we might have to limit the number of concurrent threads connecting to it. This column will contain the current number of current threads (although I am not sure MySQL is the most optimal to use for this because of the massive amount of reads/writes required) - last_used: When the proxy was last used by the user 5. "[login to view URL]" forwards GET/POST request (with all headers) a) If proxy fails: - "[login to view URL]" updates total_fail_reqs++ and total_fail_users++ - Add "last_used" for proxy with current timestamp - Select different proxy and perform request again (user's connection should not drop) > if no remaining proxies, output error message and continue retrying every X seconds b) If proxy is a success, return response to user - Reset total_fail_reqs and total_fail_users - Add "last_used" for proxy with current timestamp NOTE: Please include your intended stack and any similar projects in the bid.
IČ projektu: 18661026

O projektu

7 nabídky
Vzdálený projekt
Aktivní před 5 roky

Chcete si vydělat nějaké peníze?

Výhody podávání nabídek na Freelancer

Stanovte si rozpočet a časový rámec
Získejte za svou práci zaplaceno
Načrtněte svůj návrh
Registrace a podávání nabídek je zdarma
7 freelanceři nabízejí v průměru $519 USD za tuto práci
Avatar uživatele
Hi there, I’ve read your brief and can see that you’d like to done a project. My team has 8 years experience designing and developing mobile apps for iPhone and Android and web apps. I would approach your project by starting with wireframes and getting the design completed, before starting the actual development phase. I am highly qualified for this project and would love to speak with you further about taking this project on. If you'd like to view my previous work, take a look at my Portfolio.
$555 USD v 10 dnech
5,0 (12 recenze)
5,9
5,9
Avatar uživatele
I have 8 years of experience in managing complex linux architectures and managing cloud infrastructures. I have worked on many complex projects ( Private cloud setup on AWS, Load balancing clusters, Replication systems and many more). I have versatile experience in setting up and managing server and also optimising them for best usage and fine tuning the security aspects. I have expertise in below fields :- 1 Linux Administration. 2 Windows Administration (Windows 2008 , 2012 & 2016) and Migration. 3 Cloud computing ( AWS, Azure and Google Cloud). 4 Automation ( Ansible,Puppet and Chef). 5 Application's & Web servers ( Apache, nginx, IIS and Tomcat ). 6 Databases ( Mysql, MsSql, MongoDB, postgresql and Apache CouchDB). 7 Security ( Web Security, Server hardening and IPS && IDS configuration) 8 Virtualization( KVM, Xen, OpenVZ & Parallels Virtuozzo). 9 Control Panels ( Cpanel, website panel, zpanel and parallel plesk panel). 10 Shell scripts, python & Perl etc. 11 Mail servers.
$277 USD v 1 dni
5,0 (60 recenze)
5,6
5,6
Avatar uživatele
i am linux administrator and having sound knowledge of ssh / putty / terminal to access files & directories inside linux vps. I have been using Shell Scripting with Sql for more then 20 Years of my career as developer and database administrator. Wrote a monitoring system to monitor Oracle database availability, performance and producing health reports. Done a lot of automated and housekeeping tasks which are all required in depth knowledge of Shell scripting and SQL queries. I will go through and let you know to use putty to access linux server. I am having 7+ year of working experience in this field. Please message me for further discussion.
$457 USD v 10 dnech
4,9 (27 recenze)
5,0
5,0
Avatar uživatele
Hello sir, I can help you with your project Linux Proxy Controller/Forwarder. I have the good experience in Linux, MySQL, Nginx, Shell Script, Squid Cache. Please see my profile i have delivered here 425 projects with 100% client satisfaction. only take projects which I am sure I can do. Please ping me for the further discussion.
$750 USD v 10 dnech
4,5 (23 recenze)
5,3
5,3
Avatar uživatele
hello sir i am professional custom php development also following php frameworks Laravel CodeIgniter Symfony Zend Phalcon CakePHP Yii we can deliver you your project beyond your expectation . you can chat with me we can talk more about your project i am having more then 10 years experience of php developed many ERP CRM for different companies
$512 USD v 5 dnech
0,0 (0 recenze)
0,0
0,0

O klientovi

Pochází z CANADA
Toronto, Canada
5,0
7
Ověřená platební metoda
Členem od říj 1, 2013

Ověření klienta

Díky! Poslali jsme vám e-mailem odkaz pro získání kreditu zdarma.
Při odesílání e-mailu se něco pokazilo. Zkuste to prosím znovu.
Registrovaných uživatelů Zveřejněných projektů
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Načítání náhledu
Bylo uděleno povolení ke geolokaci.
Vaše doba přihlášení vypršela a byli jste odhlášeni. Přihlaste se znovu.