در برنامه نویسی

آموزش نصب پروکسی سرور Squid برروی Ubuntu بهمراه مثال Curl برای PHP

Squid یه پروکسی سرور قوی و پرسرعته که برای HTTP, HTTPS, FTP پشتیبانی میکنه که یکی از قابلیت های اصلیش کش سروره برای کاهش پهنای باند که قابل نصب برروی بیشتر سیستم عامل ها از جمله ویندوزه و قراره در این نوشته، آموزش نصبش رو برروی ابونتو بهتون توضیح بدم.

خب بریم سراغ نصب، ابتدا دستور زیر رو در ترمینال اجرا کنید تا ایندکس پکیج ها آپدیت بشن

apt-get update

سپس دستور زیر رو اجرا کنید تا Squid نصب بشه:

apt-get -y install squid

خب بعد از اتمام مراحل نصب، مطمئن بشید که نصب به خوبی انجام شده

squid -v

که باید با این خروجی روبرو بشید:

root@ubuntu:~# squid -v
Squid Cache: Version 3.5.12
Service Name: squid
Ubuntu linux

سپس با دستور زیر Squid رو روی وب سرورتون استارت کنید

systemctl start squid
systemctl enable squid

خب حالا باید بریم سراغ احراز هویت که قراره از htpasswd استقاده کنیم که قبل از اجرا باید پکیج ‍‍apache2-utils که نیاز هست رو نصب کنیم. برای نصب، دستور زیر رو اجرا کنید:

apt install apache2-utils

خب حالا باید یه فایل در سرور برای احراز هویت در سرور بسازید و بهش پرمیشن بدید، برای انجام دستور زیر رو اجرا کنید:

touch /etc/squid/passwd
chown squid /etc/squid/passwd

خب حالا دستور زیر رو اجرا کنید تا htpasswd اجرا بشه و ازتون یه رمز بگیره، رمز طی ۲ مرحله از شما گرفته میشه و این رمز حتمأ به خاطر داشته باشید.

htpasswd /etc/squid/passwd admin

خب حالا نیاز هست به سراغ فایل پیکربندی Squid که در مسیر /etc/squid/squid.conf هست بریم و اطلاعات احراز هویت رو به فایل اضافه کنیم، با vi‍ فایل رو باز کنید:

vi /etc/squid/squid.conf

و دستور زیر رو به فایل اضافه و سپس فایل رو ذخیره کنید.

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 3 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

بعد از اضافه کردن دستورات بالا، نیاز هست که Squid رو ریستارت کنید:

systemctl restart squid

تا اینجای کار، کارهای مربوط به سرور انجام شده و با قطعه کد زیر میتونید درخواست Curl تون رو از پروکسی سرور رد کنید:

<?php
$username = 'admin';
$password = 'yourpassword';
$proxy_url = 'YourServerIP:3128';
$url = 'http://yourwebsite.com';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy_url);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $username . ':' . $password);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);

echo $curl_scraped_page;

در نظر داشته باشید که پورت پیشفرض Squid برروی 3128 میباشد که میتوانید در فایل پیکربندی Squid آن را تغییر بدید.

موفق باشید!

ارسال نظر

دیدگاه

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.