خانه Easy Apache 4 وب سرور Easy Apache آشنایی و معرفی Apache Module mod_ proxy

آشنایی و معرفی Apache Module mod_ proxy

19 دقیقه خوانده شده
۰
0
99
proxy

در این بخش به طور کامل با Apache Module mod_ proxy آشنا می شوید. همچنین اگر قصد خرید هاست لینوکس ویندوز و سرور مجازی را دارید با چیتاهاست بهترین ارائه دهنده هاست همراه باشید.

Apache Module mod_ proxy

 

توضیحات: سرور چند پروتکل پروکسی / دروازه

وضعیت: فرمت

شناسه ماژول: proxy _module

فایل منبع: mod_ proxy.c

خلاصه

هشدار

پروکسی را با Proxy Requests فعال نکنید تا سرور خود را امن شود. سرورهای پروکسی باز برای هر دو شبکه و به اینترنت در خطر هستند.

mod_ proxy و ماژول های مربوطه یک پروکسی / دروازه ای برای Apache HTTP Server پیاده سازی ، از تعدادی از پروتکل های محبوب و همچنین  از چندین الگوریتم متعادل کننده بار مختلف پشتیبانی میکنند. ماژول های شخص ثالث می توانند پشتیبانی از پروتکل های اضافی و بارگیری الگوریتم های متعادل سازی را اضافه کنند.

مجموعه ای از ماژول ها باید به سرور منتقل شوند تا ویژگی های لازم را ارائه دهند. این ماژول ها می تواند به صورت ایستا در زمان ساخت و یا به صورت پویا از طریق دستورالعمل LoadModule بکار گرفته شود). مجموعه باید شامل موارد زیر باشد:

  • mod_proxy، که قابلیت های اولیه پروکسی را فراهم می کند.
  • mod_proxy_balancer و یک یا چند ماژول متعادل کننده اگر لازم است متعادل سازی بار باشد. (برای اطلاعات بیشتر به mod_proxy_balancer مراجعه کنید.)
  • یک یا چند طرح پروکسی یا پروتکل، ماژول ها:
پروتکل ماژول
AJP13 (Apache JServe Protocol version 1.3) mod_ proxy_ajp
CONNECT (for SSL) mod_ proxy_connect
FastCGI mod_ proxy_fcgi
ftp mod_ proxy_ftp
HTTP/0.9, HTTP/1.0, and HTTP/1.1 mod_ proxy_http
SCGI mod_ proxy_scgi
WS and WSS (Web-sockets) mod_ proxy_wstunnel

علاوه بر این، ویژگی های توسعه یافته توسط سایر ماژول ها ارائه می شود. ذخیره سازی توسط mod_cache و ماژول های مرتبط ارائه شده است. توانایی برقراری ارتباط با سرورهای راه دور با استفاده از پروتکل SSL / TLS توسط دستورات SSLProxy * mod_ssl ارائه شده است. این ماژول های اضافی نیاز به بارگذاری و پیکربندی برای استفاده از این ویژگی ها دارند.

پروکسی های جلو و پروکسی های معکوس / دروازه ها

Apache HTTP Server را می توان در هر دو پروکسی پیشفرض و معکوس (همچنین به عنوان دروازه) پیکربندی کرد.

یک پروکسی پیش فرض معمولی یک سرور متوسط ​​است که بین مشتری و سرور اصلی ایجاد می شود. برای دریافت محتوا از سرور مبدا، مشتری درخواستی را به پروکسی می نامد که سرور اصلی را به عنوان هدف ارسال می کند. سپس پروکسی از محتویات سرور محتوا را درخواست می کند و آن را به مشتری می فرستد. مشتری باید به طور خاص برای استفاده از پروکسی رو به جلو برای دسترسی به سایت های دیگر پیکربندی کند.

استفاده معمول از یک پروکسی جلو برای دسترسی به اینترنت به مشتریان داخلی است که در غیر این صورت توسط یک فایروال محدود شده است. پروکسی رو به جلو نیز می تواند از ذخیره سازی (به عنوان mod_cache ارائه شده) برای کاهش استفاده از شبکه استفاده کند.

پروکسی رو به جلو با استفاده از دستور ProxyRequests فعال می شود. از آنجا که پروکسی های جلو به مشتریان اجازه می دهند تا از طریق سرور خود به سایت های دلخواه دسترسی پیدا کرده و منشا واقعی خود را پنهان کنند، ضروری است که سرور خود را امن کنید تا فقط مشتریان مجاز بتوانند قبل از فعال کردن یک پروکسی روبرو به پروکسی دسترسی داشته باشند.

پروکسی معکوس (یا دروازه)، در مقابل، به نظر مشتری همانند یک سرور وب معمولی است. هیچ پیکربندی خاصی در مورد مشتری ضروری نیست. مشتری درخواست های معمولی را برای محتوا در فضای نام پروکسی معکوس ایجاد می کند. پروکسی معکوس پس از آن تصمیم می گیرد که کدام این درخواست ها را ارسال کند و محتوا را همانند منشا باز گرداند.

یک استفاده معمول از یک پروکسی معکوس این است که دسترسی کاربران اینترنت به یک سرور که پشت یک دیوار آتش است را فراهم کند. معکوس معکوس همچنین می تواند برای تعادل بار در بین چندین سرویس دهنده عقب یا استفاده از ذخیره سازی برای یک سرور بازگشتی کندتر استفاده شود. علاوه بر این، پروکسی معکوس را می توان به سادگی برای آوردن چند سرور به همان فضای URL استفاده کرد.

یک پروکسی معکوس با استفاده از دستور ProxyPass یا پرچم [ [P  به دستور RewriteRule فعال می شود. لازم نیست که ProxyRequests را روشن کنید تا پروکسی معکوس را پیکربندی کنید.

مطالب مرتبط: آشنایی با Apache Module mod_cgi

مثالهای پایه

مثالهای زیر تنها یک ایده بسیار اساسی برای کمک به شما در شروع کار است. لطفا مستندات مربوط به دستورالعمل های فردی را بخوانید.

علاوه بر این، اگر شما مایل به فعال شدن ذخیره سازی، مستندات مربوط به mod_cache باشید.

معکوس پروکسی

ProxyPass "/ foo" "http://foo.example.com/bar"

ProxyPassReverse "/ foo" "http://foo.example.com/bar"

پروکسی جلو

ProxyRequests On

ProxyVia On



<Proxy "*">

  Require host internal.example.com

</Proxy>

دسترسی از طریق دستگیره

شما همچنین می توانید یک درخواست را ، با ایجاد گذر از Handler مناسب به عنوان درخواست معکوس پروکسی تحویل دهید. پیکربندی مثال زیر، تمام درخواست ها برای اسکریپت های PHP را به سرور FastCGI مشخص شده با استفاده از پروکسی معکوس منتقل می کند:

اسکریپت پروکسی معکوس

<FilesMatch "\.php$">

    # Unix sockets require 2.4.7 or later

    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"

</FilesMatch>

این ویژگی در آپاچی HTTP Server 2.4.10 و بعدا در دسترس است.

کارگران

پروکسی پیکربندی سرورهای مبدا و پارامترهای ارتباطی خود را در اشیاء به نام کارگران مدیریت می کند. دو کارگر ساخته شده در داخل وجود دارد: پروکسی پیشفرض به طور پیش فرض و کارگزار پروکسی معکوس پیش فرض. کارگران اضافی را می توان بصورت صحیح پیکربندی کرد.

دو کارمند پیش فرض دارای یک پیکربندی ثابت هستند و اگر هیچ کارگر دیگر با درخواست پاسخ ندهد استفاده می شود. آنها از HTTP Keep-Alive یا استفاده مجدد از اتصال استفاده نمی کنند. اتصالات TCP به سرور اصلی به جای آن برای هر درخواست باز و بسته خواهد شد.

کارکنان صراحتا پیکربندی شده توسط URL خود شناسایی می شوند. آنها معمولا با استفاده از ProxyPass یا ProxyPassMatch ایجاد و پیکربندی می شوند، زمانی که برای پروکسی معکوس استفاده می شود:

ProxyPass "/ example" "http://backend.example.com" connectiontimeout = 5 timeout = 30

این یک کارگر در ارتباط با URL اصلی http://backend.example.com که از ارزشهای داده شده به دست می آید، ایجاد می کند. هنگامی که در پروکسی رو به جلو استفاده می شود، کارگران معمولا از طریق دستور ProxySet تعریف می شوند:

ProxySet "http://backend.example.com" connectiontimeout = 5 timeout = 30

یا به طور متداول با استفاده از پروکسی و ProxySet:

</ proxy>< "http://backend.example.com">

  connectiontimeout proxySet = 5 timeout = 30

</ proxy>

استفاده از کارکنان صراحتا پیکربندی شده در حالت پیش فرض بسیار معمول نیست، زیرا پروکسی های روبرو معمولا با بسیاری از سرورهای مختلف مبدا ارتباط برقرار می کنند. ایجاد کارکنان صریح برای بعضی از سرویس دهنده های اصلی می تواند مفید باشد، اگر آنها اغلب استفاده می شود. کارکنان صراحتا پیکربندی هیچ مفهومی برای جلوگیری یا معکوس کردن پروکسی ندارند. آنها یک مفهوم مشترک ارتباط با سرورهای مبدا را محاسبه می کنند. کارگر ایجاد شده توسط ProxyPass برای استفاده در پروکسی معکوس نیز برای درخواست پروکسی رو به جلو هر زمان که URL به سرور مبدا با URL کارگر منطبق می شود و برعکس استفاده شود.

نشانی اینترنتی شناسایی یک کارگر مستقیم نشانی اینترنتی سرور منبع آن شامل هر مولفه مسیر داده شده است:

ProxyPass "/examples" "http://backend.example.com/examples"

ProxyPass "/docs" "http://backend.example.com/docs"

این مثال دو کارگر مختلف را تعریف می کند، هر کدام با استفاده از استخر و پیکربندی اتصال جداگانه برقرار میکنند .

اشتراک کارگران

به اشتراک گذاری کارگر اتفاقی می افتد اگر URL ها کارگر با هم همپوشانی دارند، که رخ می دهد زمانی که URL برخی از کارگران یک زیر رشته پیشرو در آدرس اینترنتی کارگر دیگری بعد از آن در فایل پیکربندی تعریف شده است. در مثال زیر

ProxyPass "/ apps" "http://backend.example.com/" timeout = 60

ProxyPass "/ examples" "http://backend.example.com/examples" timeout = 10

کارگر دوم در واقع ایجاد نشده است. در عوض اولین کارگر استفاده می شود. مزیت این است که تنها یک استخر ارتباط وجود دارد، بنابراین اتصالات اغلب استفاده مجدد می شوند. توجه داشته باشید که تمام ویژگی های پیکربندی که به صراحت برای کارگر بعد داده شده، نادیده گرفته می شود. این به عنوان یک هشدار ثبت می شود. در مثال بالا، مقدار زمان انتظار برای URL / نمونه ها به جای ۱۰ به ۶۰ می رسد!

اگر میخواهید از اشتراک کارگر جلوگیری کنید، تعاریف کارگرتان را با طول URL مرتب کنید، از طولانیترین URLهای کارگر شروع کنید. اگر می خواهید برای به حداکثر رساندن اشتراک کارگران، از دستور مرتب سازی معکوس استفاده کنید. همچنین هشدار مربوط به سفارش دستورالعمل ProxyPass را مشاهده کنید.

کارگران به طور صریح پیکربندی در دو طعم قرار می گیرند: کارگران مستقیم و (بار) کارگران متعادل کننده. آنها از بسیاری از ویژگی های پیکربندی مهم پشتیبانی می کنند که در زیر دستورالعمل ProxyPass شرح داده شده است. ویژگی های مشابه نیز می توانند با استفاده از ProxySet تنظیم شوند.

مجموعه ای از گزینه های موجود برای یک کارگر مستقیم وابسته به پروتکل است که در URL اصلی پرونده مشخص شده است. پروتکل های موجود عبارتند از ajp، fcgi، ftp، http و scgi.

کارگران متعادل کننده کارگران مجازی هستند که از کارکنان مستقیم شناخته شده به عنوان اعضای خود برای رسیدگی به درخواست ها استفاده می کنند. هر متعادل کننده می تواند اعضای متعدد داشته باشد. هنگامی که یک درخواست را پردازش می کند، یک عضو بر اساس الگوریتم متعادل کننده بار پیکربندی را انتخاب می کند.

یک کارمند تعادل ایجاد شده است اگر URL کارگرش از تعادل به عنوان پروتکل استفاده کند. URL متعادل کننده یک کارمند متعادل کننده را شناسایی می کند. اعضا به Balancer با استفاده از BalancerMember اضافه می شوند.

وضوح DNS برای حوزه های مبدا

قطعنامه DNS زمانی اتفاق می افتد که سوکت به حوزه مبدا برای اولین بار ایجاد شود. هنگامی که مجددا استفاده از اتصال فعال می شود، هر دامنه باطن تنها یک بار در هر فرآیند فرزند حل می شود و برای تمام ارتباطات بیشتر ذخیره می شود تا زمانی که کودک بازیافت شود. این اطلاعات هنگام برنامه ریزی وظایف تعمیر و نگهداری DNS با حوزه های پشت صحنه باید در نظر گرفته شود. لطفا پارامترهای ProxyPass را برای جزئیات بیشتر در مورد استفاده مجدد از اتصال بررسی کنید.

کنترل دسترسی به پروکسی شما

شما می توانید کنترل کنید که چه کسی می تواند از پروکسی <Proxy> به عنوان مثال در زیر پروکسی خود دسترسی داشته باشد:

<Proxy "*">

  Require ip 192.168.0

</Proxy>

برای اطلاعات بیشتر در مورد دستورالعمل های کنترل دسترسی، به mod_authz_host مراجعه کنید.

اگر شما از یک پروکسی روبرو استفاده می کنید با استفاده از دستور ProxyRequests))، دسترسی به شدت محدود کردن ضروری است. در غیر این صورت، سرور شما می تواند توسط هر مشتری برای دسترسی به میزبان های دلخواه در حالی که هویت واقعی خود را مخفی می کند استفاده شود. این دو برای شبکه شما و برای اینترنت در کل خطرناک است. هنگام استفاده از پروکسی معکوس (با استفاده از پروکسی ProxyPass با ProxyRequests خاموش) کنترل دسترسی کم اهمیت تر است زیرا مشتری تنها می تواند با میزبان هایی که شما به طور خاص پیکربندی شده تماس بگیرید.

همچنین متغیر محیط Proxy-Chain-Auth را ببینید.

راه اندازی آهسته

اگر از دستور Direction ProxyBlock استفاده می کنید، آدرس IP های میزبان برای تست مسابقه بعدی در هنگام راه اندازی مورد بررسی قرار می گیرد. این ممکن است چند ثانیه (یا بیشتر) بسته به سرعت که با جستجوهای میزبان رخ می دهد، طول بکشد.

پروکسی اینترانت

یک پروکسی آپاچی httpd که در داخل اینترانت قرار دارد، باید درخواست های خارجی را از طریق فایروال شرکت ارسال کند (برای این، دستورالعمل ProxyRemote را برای ارسال پرونده مربوطه به پروکسی فایروال پیکربندی کنید). با این حال، هنگامی که مجبور به دسترسی به منابع داخل اینترانت می شود، می تواند از طریق فایروال هنگام دسترسی به میزبان عبور کند. دستور NoProxy برای مشخص کردن میزبان متعلق به اینترانت مفید است و باید به طور مستقیم آن را مشاهده کرد.

کاربران داخل اینترانت تمایل دارند نام دامنه محلی را از درخواست WWW خود حذف کنند، بنابراین به جای http://somehost.example.com/ درخواست “http: // somehost /” را می دهند. برخی از سرورهای پروکسی تجاری به آنها اجازه می دهند از این کار جلوگیری کنند و به سادگی در خدمت درخواست باشند، که حاکی از یک دامنه محلی پیکربندی شده است. هنگامی که دستورالعمل ProxyDomain مورد استفاده قرار می گیرد و سرور برای سرویس پراکسی پیکربندی شده است، آپاچی httpd می تواند یک پاسخ هدایتگر را بازگرداند و مشتری را به آدرس صحیح و کاملا واجد شرایط سرور ارسال کند. این روش ترجیح داده می شود از آنجایی که فایل های نشانک کاربر پس از آن حاوی میزبان کامل می باشد.

تنظیمات پروتکل

برای شرایطی که mod_proxy درخواستهای ارسال شده به یک سرور مبدلی را انجام میدهد که keepalives یا HTTP / 1.1 را به درستی اجرا نمیکند، دو متغیر محیطی وجود دارد که میتوانند درخواست را برای استفاده از HTTP / 1.0 بدون نگهداری استفاده کنند. اینها از طریق دستورالعمل SetEnv تنظیم می شوند.

اینها یادداشتهای force-proxy-request-1.0 و proxy-nokeepalive هستند.

<Location "/buggyappserver/">

  ProxyPass "http://buggyappserver:7001/foo/"

  SetEnv force-proxy-request-1.0 1

  SetEnv proxy-nokeepalive 1

</Location>

در ۲٫۴٫۲۶ و بعد، متغیر محیطی “بدون پروکسی” را می توان برای غیر فعال کردن mod_proxy پردازش درخواست فعلی تنظیم کرد. این متغیر باید با SetEnvIf تنظیم شود، زیرا SetEnv به اندازه کافی ارزیابی نمی شود.

درخواست بدن

برخی از روش های درخواست مانند POST شامل یک بدن درخواست است. پروتکل HTTP مستلزم آن است که درخواستهایی که حاوی یک بدن هستند یا از رمزگذاری انتقال chunked استفاده می کنند یا یک header درخواست Content-Long را ارسال می کنند. هنگام ارسال این درخواستها به سرور مبدا، mod_proxy_http همیشه سعی میکند Content-Length را ارسال کند. اما اگر بدن بزرگ است و درخواست اولیه از رمزگذاری فشرده استفاده می کند، همچنین رمزگذاری فشرده ممکن است در درخواست بالادست استفاده شود. شما می توانید این انتخاب را با استفاده از متغیرهای محیطی کنترل کنید. تنظیم پروکسی sendcl حداکثر سازگاری با سرورهای بالادست را با همیشه ارسال Content-Length می کند، در حالی که تنظیم پروکسی sendchunked با استفاده از کدگذاری chunked، استفاده از منابع را به حداقل می رساند.

در بعضی موارد، سرور باید به صورت دیجیتال برای انجام درخواست های مربوط به درخواست ها، دیسک را به تساوی بسپارد. برای مثال، این spooling رخ می دهد اگر بدن اصلی با کدگذاری chunked  (و بزرگ است) فرستاده می شود، اما مدیر درخواست کرده است که درخواست های باطن با Content-Length یا به عنوان HTTP / 1.0 فرستاده شود. این spooling همچنین می تواند رخ دهد اگر بدن درخواست قبلا دارای یک عنوان Content-Length باشد، اما سرور برای فیلتر کردن درخواست های ورودی پیکربندی شده است.

LimitRequestBody تنها برای درخواست بدن که سرور به روی دیسک تساوی اعمال می شود

سربرگ درخواست پروکسی معکوس

هنگامی که در حالت معکوس پروکسی (با استفاده از دستورالعمل ProxyPass، به عنوان مثال) عمل می کند، mod_proxy_http چندین هدر درخواست اضافه می کند تا اطلاعات را به سرور مبدا منتقل کند. این هدر ها عبارتند از:

X-Forwarded-For

آدرس IP مشتری

X-Forwarded-Host

میزبان اصلی درخواست شده توسط مشتری در هدر درخواست HTTP میزبان.

X-Forwarded-Server

نام میزبان سرور پروکسی

هنگام استفاده از این هدر ها در سرور مبدا، مراقب باشید، زیرا اگر درخواست اولیه در حال حاضر حاوی یکی از این هدر ها باشد، آنها دارای بیش از یک مقدار (جدا شده با کاما) خواهند بود. برای مثال، شما می توانید٪ {X-Forwarded-For} I را در رشته فرمت log از سرور مبدا برای ورود مشتری آدرس اصلی مشتری استفاده کنید، اما اگر درخواست از طریق چندین پروکسی عبور کند، ممکن است بیش از یک آدرس دریافت کنید.

همچنین دستورالعمل ProxyPreserveHost و ProxyVia را مشاهده کنید که هدرهای دیگر درخواست را کنترل می کند.

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

مقررات رشد تعادل

توضیحات: تعداد بالانس های اضافی که می توانند اضافه شوند پس از پیکربندی

نحو: BalancerGrowth #

پیش فرض: BalancerGrowth 5

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: BalancerGrowth تنها در Apache HTTP Server 2.3.13 و بعدا در دسترس است.

این دستورالعمل اجازه می دهد تا پتانسیل رشد در تعداد Balancers در دسترس برای یک مجازی مجازی علاوه بر تعداد پیش پیکربندی شده است. این تنها زمانی اثر میگیرد که حداقل یک Balancer از قبل تنظیم شده وجود داشته باشد.

BalancerInherit دستورالعمل

توضیحات: توارث کننده ProxyPassed توارث / کارگران از سرور اصلی

نحو: BalancerInherit On | Off

پیش فرض: BalancerInherit On

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: BalancerInherit تنها در آپاچی HTTP Server 2.4.5 و بعدا در دسترس است.

این دستور باعث می شود که سرور / vhost کنونی “ارث بری” Balancers و Workers ProxyPass در سرور اصلی تعریف شود. در صورت استفاده از مدیریت Balancer این می تواند مسائل و رفتارهای متناقض را ایجاد کند و بنابراین اگر از این ویژگی استفاده شود، باید غیر فعال شود.

تنظیم در سرور جهانی، پیش فرض را برای تمام vhosts تعریف می کند.

BalancerMember Directive

توضیحات: اضافه کردن یک عضو به یک گروه متعادل کننده بار

نحو: BalancerMember [balancerurl] url [key = value [key = value …]]

متن: دایرکتوری

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: BalancerMember تنها در آپاچی HTTP Server 2.2 و بالاتر در دسترس است.

این دستور یک عضو را به یک گروه متعادل کننده بار اضافه می کند. می توان آن را در یک directive <Proxy balancer: // …> استفاده کرد و می تواند هر یک از پارامترهای جفت مقدار ارزش موجود در دستورالعمل ProxyPass را بگیرد.

یک پارامتر اضافی فقط برای دستورالعمل BalancerMember در دسترس است: loadfactor. این عامل بار عضو است – عدد بین ۱ (به طور پیش فرض) و ۱۰۰، که وزن بار را تعیین می کند که به اعضای مورد نظر اعمال می شود.

Balancerurl فقط زمانی لازم است که در داخل <Directive Proxy Balancer: // …> container نیست. این مربوط به نشانی اینترنتی متعادل کننده تعریف شده در دستورالعمل ProxyPass است.

جزء مسیر URL متعادل کننده در هر <Proxy balancer: // …> directive directive نادیده گرفته می شود.

به طور معمول از تکه تکه های تکراری از URL متعلق به BalancerMember حذف می شود.

مقررات BalancerPersist

توضیحات: تلاش برای حفظ تغییرات ساخته شده توسط مدیر Balancer در سراسر راه اندازی مجدد.

نحو: BalancerPersist On | Off

پیش فرض: BalancerPersist خاموش

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: BalancerPersist تنها در Apache HTTP Server 2.4.4 و بعدا در دسترس است.

این دستور باعث می شود که ذخیره سازی حافظه مشترک در ارتباط با اعضای متعادل کننده و متعادل کننده در میان راه اندازی مجدد ادامه یابد. این اجازه می دهد تا این تغییرات محلی در طول انتقال طبیعی حالت راه اندازی مجدد / تغییر حالت طبیعی از دست نرود.

دستورالعمل NoProxy

شرح: میزبان، دامنه ها یا شبکه هایی که به طور مستقیم متصل می شوند

نحو: میزبان NoProxy [میزبان] …

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

این دستور فقط برای سرورهای پروکسی آپاچی httpd در داخل اینترانت مفید است. دستور NoProxy لیستی از زیر شبکه ها، آدرس های IP، میزبان ها و / یا دامنه ها را که با فضاهای جدا شده اند مشخص می کند. یک درخواست برای یک میزبان که یکی یا بیشتر از این موارد را دنبال می کند، همیشه به طور مستقیم و بدون فرستادن به پروکسی سرور ProxyRemote پیکربندی شده است.

مثال

ProxyRemote "*" "http://firewall.example.com:81"

NoProxy ".example.com" "192.168.112.0/21"

استدلال میزبان به دستور NoProxy یکی از لیست نوع زیر است:

دامنه

یک دامنه نام دامنه DNS معقول است که پیش از آن یک دوره است. این نشان دهنده یک لیست از میزبان است که به طور منطقی متعلق به یک دامنه یا منطقه DNS است (به عنوان مثال، پسوندهای نام های میزبان همه در دامنه پایان می یابد).

مثال ها

.com .example.org

برای تشخیص دامنه ها از نام های میزبان (هر دو به نحوی و معنایی؛ دامنه DNS می تواند یک رکورد DNS نیز داشته باشد!)، دامنه ها همیشه با یک دوره پیشنهادی نوشته می شوند.

توجه داشته باشید

مقایسات نام دامنه بدون توجه به مورد انجام می شود و همیشه Domains ها در ریشه درخت DNS لود می شوند؛ بنابراین، دو دامنه .ExAmple.com و .example.com. (توجه داشته باشید که دوره پایانی) برابر است. از آنجا که یک مقایسه دامنه شامل یک جستجوی DNS نیست، بسیار مقرون به صرفه تر از مقایسه زیر شبکه است.

SubNet

یک SubNet یک آدرس اینترنتی با الزامات جزئی در چهار عدد عددی (dotted quad)است، که به صورت اختیاری می تواند یک علامت خام و ماسک شبکه باشد، که به عنوان تعداد بیت های قابل توجه در SubNet مشخص شده است. این مورد برای نشان دادن یک زیرشاخه از میزبان است که می تواند بر روی یک رابط شبکه مشترک برقرار شود. در غیاب ماسک خالص صریح فرض می شود که عدد صفر حذف شده (یا صفر) نشان دهنده ماسک است. (در این حالت، ماسک شبکه تنها می تواند چند برابر ۸ بیت عرض باشد.) مثال ها:

۱۹۲٫۱۶۸ یا ۱۹۲٫۱۶۸٫۰٫۰

زیرساخت ۱۹۲٫۱۶۸٫۰٫۰ با یک ماسک نهایی ۱۶ بیت معتبر (که گاهی اوقات در فرم netmask 255.255.0.0 استفاده می شود)

۱۹۲٫۱۶۸٫۱۱۲٫۰/۲۱

زیرنویس ۱۹۲٫۱۶۸٫۱۱۲٫۰/۲۱ با یک ماسک از ۲۱ بیت معتبر (همچنین در فرم ۲۵۵٫۲۵۵٫۲۴۸٫۰ استفاده می شود)

یک SubNet با ۳۲ بیت معتبر معادل یک IPAddr است، در حالی که SubNet با صفر معتبر صفر (مثلا ۰٫۰٫۰٫۰/۰) همانند _Default_ ثابت است، مطابق با هر آدرس IP.

IPAddr

یک IPAddr یک آدرس اینترنتی کاملا واجد شرایط را در شکل عددی (dotted quad)نشان می دهد. معمولا این آدرس یک میزبان است، اما لزوما باید یک نام دامنه DNS متصل به آدرس باشد.

مثال

۱۹۲٫۱۶۸٫۱۲۳٫۷

توجه داشته باشید

یک سیستم IPAddr لازم نیست که توسط سیستم DNS حل شود، بنابراین می تواند کارایی آپاچی را با کارایی بیشتری انجام دهد.

 نام میزبان

یک نام میزبان یک نام دامنه کاملا DNS است که می تواند به یک یا چند IPAddrs از طریق سرویس نام دامنه DNS حل شود. این یک میزبان منطقی است (در مقایسه با دامنه ها، در بالا دیده می شود) و باید حداقل یک IPAddr (و یا اغلب به لیست میزبان با IPAdd های مختلف) قابل حل باشد.

مثال ها

prep.ai.example.edu

www.example.org

توجه داشته باشید

در بسیاری از موارد، بهتر است یک IPAddr را به جای نام یک میزبان مشخص کنیم زیرا ممکن است از جستجوی DNS اجتناب شود. نام وضوح در Apache httpd می تواند یک معادله قابل توجه از زمانی که اتصال به سرور نام استفاده از پیوند PPP آهسته است.

مقایسه نامهای میزبان بدون توجه به مورد انجام می شود و نام میزبان همیشه در ریشه درخت DNS لنگر می شود؛ بنابراین، دو میزبان WWW.ExAmple.com و www.example.com. (توجه داشته باشید که دوره پایانی) برابر است.

همچنین نگاه کنید

مسائل DNS

<proxy> دستورالعمل

شرح: کانتینر برای دستورالعمل هایی که به منابع پروکسی متصل می شوند

نحو: <پراکسی wildcard-url> … </ proxy>

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

دستورالعمل هایی که در قسمت های <Proxy>قرار می گیرند فقط برای مطابقت با محتوای پروکسی استفاده می شوند. کلمات کلیدی سبک شل مجاز می باشند.

به عنوان مثال، زیر اجازه می دهد تنها میزبان در yournetwork.example.com برای دسترسی به محتوا از طریق پروکسی سرور شما:

<Proxy "*">

  Require host yournetwork.example.com

</Proxy>

مثال زیر تمام پرونده ها را در پوشه foo example.com از طریق فیلتر INCLUD هنگام ارسال از طریق پروکسی سرور پردازش می کند:

<Proxy "http://example.com/foo/*">

  SetOutputFilter INCLUDES

</Proxy>
 

تفاوت از بخش پیکربندی محل

یک URL باطن با بخش پیکربندی منطبق با بخش تنظیمات اگر با رشته wildcard-url آغاز می شود، حتی اگر آخرین بخش مسیر در دستورالعمل فقط با یک پیشوند از URL باطن مطابقت داشته باشد. به عنوان مثال، <پروکسی “http://example.com/foo”> با تمام موارد http://example.com/foo، http://example.com/foo/bar و http://example.com مطابقت دارد / فوبار تطبیق URL نهایی از رفتار بخش <Location> متفاوت است، که برای اهداف این یادداشت، جزء مسیر نهایی را به عنوان خط پایان به کار می گیرد.

برای کنترل بیشتر تطبیق، <ProxyMatch >را ببینید.

همچنین نگاه کنید

  • <ProxyMatch>

دستور ProxyAddHeaders

توضیحات: اضافه کردن اطلاعات پروکسی در هدر X-Forwarded- *

نحو: ProxyAddHeaders خاموش | روشن

پیش فرض: ProxyAddHeaders On

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: موجود در نسخه ۲٫۳٫۱۰ و بعد

این دستور تعیین می کند که آیا اطلاعات مربوط به پروکسی باید از سرور X-Forwarded-For، X-Forwarded-Host و X-Forwarded-HTTP HTTP منتقل شود یا خیر.

اثربخشی

این گزینه فقط برای پروکسی HTTP استفاده می شود، همانطور که توسط mod_proxy_http اداره می شود.

دستورالعمل ProxyBadHeader

شرح: تعیین نحوه اداره خطوط هدر بد در یک پاسخ

نحو: ProxyBadHeader IsError | Ignore | StartBody

پیش فرض: ProxyBadHeader IsError

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

دستور ProxyBadHeader رفتار mod_proxy را تعیین می کند اگر خطوط هدر پاسخ خطا (به عنوان مثال حاوی هیچ کولون) از سرور اصلی ایجاد شود. استدلال های زیر ممکن است:

IsError

درخواست را خاتمه دهید و با پاسخ ۵۰۲ (دروازه پایان دهید. این رفتار به طور پیش فرض است.

چشم پوشی

خطوط هدر بد را درمان کنید  اگر آنها ارسال نمی شود.

StartBody

هنگام دریافت اولین خط هدر بد، خواندن سرصفحه ها را پایان دهید و باقی مانده ها را به عنوان بدن تلقی کنید. این به کار کردن در اطراف سرور های باطن حقیقی که فراموش کرده اند برای قرار دادن یک خط خالی بین هدر ها و بدن است کمک می کند.

دستورالعمل ProxyBlock

شرح: واژه ها، میزبان ها یا دامنه هایی که از پروکسی ممنوع شده اند

نحو: ProxyBlock * | کلمه | میزبان | دامنه [word | میزبان | دامنه] …

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

دستور ProxyBlock لیستی از کلمات، میزبان ها و / یا دامنه ها را که با فضاهای جدا شده است مشخص می کند. درخواست های سند HTTP، HTTPS و FTP به سایت هایی که نام آنها شامل کلمات مطابق، میزبان یا دامنه ها توسط سرور پروکسی مسدود شده است. ماژول پروکسی همچنین برای تعیین آدرس های IP موارد لیست که ممکن است نام میزبان در هنگام راه اندازی باشد، تلاش می کند و همچنین برای آزمایش مسابقه ذخیره می شود. این ممکن است زمان راه اندازی سرور را کند کند.

مثال

ProxyBlock "news.example.com" "auctions.example.com" "friends.example.com"

توجه داشته باشید که این مثال نیز برای تطبیق هر یک از این سایت ها کافی خواهد بود.

میزبان همچنین با آدرس آی پی ارجاع داده می شوند.

همچنین توجه داشته باشید

ProxyBlock “*”

اتصالات به تمام سایت ها را بلاک کنید.

دستورالعمل ProxyDomain

توضیحات: نام دامنه پیش فرض برای درخواست های پروکسی

نحو: Domain ProxyDomain

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

این دستور فقط برای سرورهای پروکسی آپاچی httpd در داخل اینترانت مفید است. دستور ProxyDomain مشخص کننده دامنه پیش فرض است که سرور پروکسی آپاچی به آن تعلق دارد. اگر یک درخواست برای یک میزبان بدون نام دامنه مواجه شود، یک پاسخ هدایت شده به همان میزبان با دامنه پیکربندی افزوده خواهد شد.

مثال

ProxyRemote "*" "http://firewall.example.com:81"

NoProxy ".example.com" "192.168.112.0/21"

ProxyDomain ".example.com"

دستورالعمل ProxyErrorOverride

توضیحات: صفحات خطا را برای محتوای پروکسی بیفزایید

نحو: ProxyErrorOverride On | Off

پیش فرض: ProxyErrorOverride خاموش

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_proxy

این دستور برای تنظیمات معکوس پروکسی مفید است که در آن شما می خواهید یک نگاه مشترک و احساس بر روی صفحات خطا دیده شده توسط کاربر نهایی داشته باشید. این همچنین اجازه می دهد تا برای فایل های موجود (از طریق SSI mod_include) برای دریافت کد خطا و بر این اساس عمل کنید. (رفتار پیش فرض، صفحه خطای سرور پروکسی را نشان می دهد. در این صورت پیام Error SSI نشان داده می شود.)

این دستورالعمل بر پردازش اطلاعات (۱XX)موفقیت طبیعی (۲xx)و یا هدایت (۳XX)پاسخ تأثیر نمیگذارد.

دستورالعمل ProxyIOBufferSize

توضیحات: اندازه حافظه داخلی داده بافر را تعیین می کند

نحو: بایت ProxyIOBufferSize

پیش فرض: ProxyIOBufferSize 8192

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

دستور ProxyIOBufferSize اندازه حافظه داخلی را تنظیم می کند که به عنوان یک اسکرتپد برای داده ها بین ورودی و خروجی مورد استفاده قرار می گیرد. اندازه باید حداقل ۵۱۲ باشد.

تقریبا در هر مورد، هیچ دلیلی برای تغییر این ارزش وجود ندارد.

در صورت استفاده با AJP، این دستورالعمل حداکثر اندازه بسته AJP را در بایت تعیین می کند. مقادیر بزرگتر از ۶۵۵۳۶ به ۶۵۵۳۶ تنظیم شده است. اگر از پیش فرض آن را تغییر دهید، باید ویژگی packetSize اتصال AJP خود را در سمت Tomcat تغییر دهید! PacketSize ویژگی فقط در Tomcat 5.5.20+ و ۶٫۰٫۲+ در دسترس است.

به طور معمول تغییر اندازه حداکثر بسته لازم نیست. هنگام ارسال گواهی نامه ها یا زنجیره های گواهی، مشکلات مربوط به مقدار پیش فرض گزارش شده است.

<ProxyMatch>دستورالعمل

شرح: کانتینر برای دستورالعمل هایی که به منابع پروکسی متصل به منظم استفاده می شود.

نحو: <ProxyMatch regex> … </ ProxyMatch>

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

دستور <ProxyMatch> با دستورالعمل <Proxy> مشابه است، با این تفاوت که URL ها با استفاده از عبارات منظم مطابقت دارند.

از ۲٫۴٫۸ به بعد، گروه های نامگذاری شده و back reference ها به محیط زیست با نام متناظر با پیشوند “MATCH_” و در حالت بالایی ضبط می شوند و به محیط زیست ارسال می شوند. این اجازه می دهد تا عناصر URL ها از عبارات درونی و ماژول هایی مانند mod_rewrite ارجاع شود. به منظور جلوگیری از سردرگمی، عقب نشینی شماره (بدون نام) نادیده گرفته می شود. به جای استفاده از گروه های نامگذاری شده.

<ProxyMatch "^http://(?<sitename>[^/]+)">

    Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example

</ProxyMatch>

همچنین نگاه کنید

<proxy>

دستورالعمل ProxyMaxForwards

توضیحات: Maximium تعداد پروکسی که درخواست را می توان از طریق ارسال

نحو: شماره ProxyMaxForwards

پیش فرض: ProxyMaxForwards -1

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: رفتار پیش فرض در ۲٫۲٫۷ تغییر کرد

دستور ProxyMaxForwards حداکثر تعداد پروکسی ها را تعیین می کند که از طریق آن ممکن است یک درخواست منتقل شود اگر Header Max-Forwards با درخواست وجود نداشته باشد. این ممکن است برای جلوگیری از حلقه های پروکسی بی نهایت یا حمله DoS تنظیم شود.

مثال

ProxyMaxForwards 15

توجه داشته باشید که تنظیم ProxyMaxForwards نقض پروتکل HTTP / 1.1 (RFC2616) است که تنظیمات پروکسی Max-Forwards را غیرفعال می کند در صورتی که مشتری آن را تنظیم نکرده است. نسخه های پیشین آپاچی httpd همیشه آن را تنظیم می کنند. یک مقدار ProxyMaxForwards منفی، از جمله پیش فرض -۱، به شما می دهد رفتار سازگار با پروتکل، اما ممکن است شما را به حلقه باز کند.

دستورالعمل ProxyPass

توضیحات: سرورهای راه دور را به سرور URL محلی فضای محلی منتقل کنید

Syntax: ProxyPass [path]! | url [key = value [key = value …]] [nocanon] [interpolate] [noquery]

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: پشتیبانی سوکت دامنه یونیکس (UDS)در ۲٫۴٫۷ اضافه شد

این دستور باعث می شود که سرورهای راه دور در فضای سرور محلی نقشه بندی شوند. سرور محلی به عنوان یک پروکسی به معنای متعارف عمل نمی کند بلکه به نظر می رسد یک آینه از سرور راه دور است. سرور محلی اغلب پروکسی معکوس یا دروازه نامیده می شود. مسیر نام یک مسیر مجازی محلی است؛ URL یک URL جزئی برای سرور راه دور است و می تواند یک رشته پرس و جو را شامل نمی شود.

قبل از ادامه هرچه بیشتر با این بخش، پیشنهاد می شود مفهوم کارگر را مرور کنید.

این دستور در کانال های <Directory> و <Files> پشتیبانی نمی شود.

دستور ProxyRequests معمولا هنگام استفاده از ProxyPass تنظیم می شود.

در ۲٫۴٫۷ و بعد از آن، پشتیبانی از استفاده از یک سوکت دامنه یونیکس با استفاده از یک هدف که prefix یونیکس است: /path/lis.sock | در دسترس است. به عنوان مثال، به HTTP پروکسی و UDS را در / home / www / socket قرار می دهیم، شما از Unix استفاده می کنید: /home/www.socket | http: // localhost / whatever /.

توجه: مسیر مرتبط با unix: URL DefaultRuntimeDir آگاه است.

هنگامی که در داخل بخش <Location> استفاده می شود، اولین استدلال حذف می شود و دایرکتوری محلی از <Location> بدست می آید. همان طور که در بخش <LocationMatch> اتفاق می افتد؛ با این حال، ProxyPass به این ترتیب واکنش مجدد را تفسیر نمی کند، بنابراین لازم است از ProxyPassMatch در این حالت استفاده شود.

فرض کنید سرور محلی آدرس http://example.com/ دارد سپس

<Location "/mirror/foo/">

    ProxyPass "http://backend.example.com/"

</Location>

یک درخواست محلی برای http://example.com/mirror/foo/bar باعث می شود که در داخل یک درخواست پروکسی به http://backend.example.com/bar تبدیل شود.

اگر شما نیاز به یک پیکربندی مجدد معکوس پروکسی دارید، دستورالعمل RewriteRule با پرچم [ [P را ببینید.

دستورالعمل جایگزین زیر ممکن است؛ با این حال، می تواند یک مجازات عملکرد را در زمان بسیار زیاد انجام دهد. مزیت نحو زیر این است که برای کنترل دینامیک از طریق رابط مدیریت Balancer اجازه می دهد:

ProxyPass "/ mirror / foo /" "http://backend.example.com/"

اگر اولین آرگومان به پایان رسیده با انتهای /، آرگومان دوم نیز باید با انتهای / و برعکس باشد. در غیر این صورت، درخواست های حاصل شده به backend ممکن است به برخی از دلخواه های مورد نیاز دست یابند و نتایج مورد انتظار را تحویل ندهند.

این! دستورالعمل در شرایطی که شما نمی خواهید معکوس پروکسی یک زیر شاخه، مفید باشد، برای مثال

<Location "/mirror/foo/">

    ProxyPass "http://backend.example.com/"

</Location>

<Location "/mirror/foo/i">

    ProxyPass "!"

</Location>
ProxyPass "/mirror/foo/i" "!"

ProxyPass "/mirror/foo" "http://backend.example.com"

پروکسی تمام درخواست ها به / a mirror / foo به backend.example.com به جز درخواست هایی که به / mirror / foo / i ارائه شده است.

بالاسفارش ProxyPass دستورالعمل

قوانین پیکربندی ProxyPass و ProxyPassMatch به ترتیب پیکربندی بررسی می شوند. اولین قاعده ای که مسابقات برنده می شود. بنابراین معمولا باید مقررات مربوط به ProxyPass متناقض را ابتدا با طولانی ترین URL ها شروع کنید. در غیر اینصورت، قوانین بعدی URLS طولانی تر از هر قانون پیشینی که با استفاده از زیرمجموعه اصلی آدرس URL پنهان می شود پنهان خواهد شد. توجه داشته باشید که ارتباطی با اشتراک کارگران وجود دارد. در مقابل، تنها یک دستورالعمل ProxyPass را می توان در یک بلوک موقعیت مکانی قرار داد و مکان خاصی از آن استفاده خواهد کرد.

به دلایل مشابه، حذف باید قبل از دستورالعمل ProxyPass عمومی باشد. در ۲٫۴٫۲۶ و بعد، متغیر محیطی “بدون پروکسی” یک جایگزین برای حذف است و تنها راه برای پیکربندی حذف یک دستور ProxyPass در زمینه موقعیت است. این متغیر باید با SetEnvIf تنظیم شود، زیرا SetEnv به اندازه کافی ارزیابی نمی شود.

 

کلید ProxyPass = مقدار پارامترها

در آپاچی HTTP Server 2.1 و بالاتر، mod_proxy از ارتباطات متصل به یک سرور پشتیبانی می کند. ارتباطات ایجاد شده بر اساس تقاضا می تواند در یک استخر برای استفاده در آینده حفظ شود. محدودیت اندازه استخر و سایر تنظیمات را می توان در دستورالعمل ProxyPass با استفاده از پارامترهای کلید = value که در جداول زیر شرح داده شده است، کد گذاری کنید.

حداکثر اتصالات به backend

به طور پیش فرض، mod_proxy اجازه می دهد و حداکثر تعداد اتصالات را که می تواند به طور همزمان توسط فرایند فرزند وب سرور مورد استفاده قرار گیرد را حفظ کند. از پارامتر حداکثر برای کاهش تعداد از پیش فرض استفاده کنید. استحکام اتصالات در هر پرونده فرزند وب سرور حفظ می شود، و حداکثر و تنظیمات دیگر در میان تمام پرونده های فرزند هماهنگ نیست، مگر اینکه تنها یک پرونده فرزند با طراحی پیکربندی یا MPM مجاز باشد.

برای تنظیم زمان اختیاری برای زندگی، از پارامتر ttl استفاده کنید. اتصالاتی که برای حداقل ttl ثانیه استفاده نشده اند، بسته خواهند شد. ttl می تواند برای جلوگیری از استفاده از یک اتصال که بسته به دلیل بسته نگهداری از سرور backend است.

مثال

ProxyPass "/ example" "http://backend.example.com" max = 20 ttl = 120 retry = 300

پارامتر BalancerMember کارگر

پارامتر پیش فرض توضیحات
 

min

 

 

۰ حداقل تعداد ورودی های استخر اتصال، مربوط به تعداد واقعی اتصالات. این فقط نیاز به تغییر از پیش فرض برای شرایط خاصی دارد که حافظه پشته آن مرتبط با اتصالات backend باشد باید قبل از آن یا قبل از آن حفظ شود.
حداکثر ۱ … N حداکثر تعداد اتصالات مجاز به سرور پشت صحنه. پیش فرض برای این محدودیت تعداد موضوعات در هر فرایند در MPM فعال است. در Prefork MPM، این همیشه ۱، در حالی که با MPM های دیگر، تحت دستورات ThreadsPerChild کنترل می شود.

 

حداکثر حداکثر حداکثر این محدودیت در صورت عدم استفاده از آنها برای مدت زمان طولانی تر از زمان استفاده، از طریق پارامتر ttl آزاد می شود. اگر ورودی استخر اتصال دارای یک اتصال مرتبط باشد، آن را بسته خواهد شد. این تنها نیاز به تغییر از پیش فرض برای شرایط خاص است که در آن ورودی های ورودی به استخر و هر اتصالی مرتبط که بیش از زمان زندگی است نیاز به آزاد شدن یا بسته شدن شدید تر است.
به دست آوردن – اگر مجموعه، این حداکثر زمان برای انتظار یک اتصال رایگان در استخر اتصال، در میلی ثانیه است. در صورتی که اتصالی آزاد در استخر وجود نداشته باشد، آپاچی httpd وضعیت SERVER_BUSY را به مشتری خواهد داد.
connectiontimeout timeout زمان اتصال را در ثانیه متصل کنید. تعداد ثانیه ها آپاچی httpd برای ایجاد یک اتصال به backend برای تکمیل منتظر می ماند. با اضافه کردن postfix ms، زمان وقوع نیز می تواند در میلی ثانیه تنظیم شود.
disablereuse خاموش  این پارامتر باید زمانی استفاده شود که شما می خواهید مجبور شوید mod_proxy را مجبور کنید بلافاصله پس از استفاده از اتصال به backend را متوقف کنید، و بنابراین اتصال و استقرار مستمر آن را برای این backend غیرفعال کنید. این در موقعیت های مختلفی کمک می کند که فایروال بین آپاچی httpd و سرور پشتیبان (بدون توجه به پروتکل) تمایل به قطع ارتباط در حالت سکوت یا زمانی که خود backends ممکن است تحت DNS round-robin باشد. هنگامی که استفاده مجدد از اتصال فعال می شود، هر دامنه باطن حل و فصل می شود (با یک پرس و جو DNS) تنها یک بار در هر فرزند پردازش می شود و برای تمام اتصالات بیشتر ذخیره می شود تا زمانی که کودک بازیافت شود. برای غیرفعال کردن استفاده مجدد از اتصال، این مقدار اموال را به On تنظیم کنید.
enablereuse On این معکوس “disablireuse” بالا است، به عنوان یک راحتی برای کاراکترهای طرح ارائه منیاز به استفاده مجدد از اتصال دارند (مانند mod_proxy_fcgi). 2.4.11 و بعدا تنها شود کهflushpackets off تعیین می کند که آیا ماژول پروکسی پس از هر “تکه ای” از داده ها، تیغه خروجی را به صورت خودکار برش می دهد. “خاموش” به معنی آن است که آن را تنها زمانی که مورد نیاز فلاشینگ؛ ‘on’ بدین معنی است که بعد از هر تکه ای فرستاده می شود. و ‘خودکار’ به معنی نظرسنجی / منتظر یک دوره زمانی است و اگر هیچ ورودی برای milliseconds ‘flushwait’ دریافت نشود در حال حاضر، این فقط در مورد AJP کاربرد دارد.

 

flushpackets off
flushwait ۱۰ زمان برای انتظار ورودی اضافی، در میلی ثانیه، قبل از flushing تیپ خروجی اگر ‘flushpackets’ ‘خودکار’ است.
iobuffersize ۸۱۹۲ اندازه اندازه داخلی I / O buffer scratchpad را تنظیم می کند. این به شما اجازه می دهد که ProxyIOBufferSize را برای کارگر خاص غیرفعال کنید. این باید حداقل ۵۱۲ باشد یا برای پیش فرض سیستم از ۸۱۹۲ به ۰ باشد.
keepalive خاموش این پارامتر باید زمانی استفاده شود که فایروال بین آپاچی httpd و سرور پشتیبان شما وجود دارد که تمایل به حذف اتصالات غیر فعال است. این پرچم به سیستم عامل برای ارسال پیام های KEEP_ALIVE در اتصالات غیر فعال و به این ترتیب جلوگیری از فایروال از قطع ارتباط را می دهد. برای فعال کردن keepalive، این مقدار ملک را به On تنظیم کنید.

 

فرکانس پروبهای نگهدارنده TCP اولیه و بعدی بستگی به تنظیمات سیستم عامل جهانی دارد و ممکن است تا ۲ ساعت طول بکشد. برای مفید بودن، فرکانس پیکربندی شده در سیستم عامل باید کوچکتر از آستانه استفاده شده توسط فایروال باشد.

 

lbset ۰ تنظیم مجموعه خواص balancer بار را تنظیم می کند که عضو یک کارگر است. متعادل کننده بار تمام اعضای یک lbset قبل از تلاش از شماره های بالاتر شماره پایین را امتحان می کند.
پینگ ۰ اموال Ping به سرور می گوید که قبل از فرستادن درخواست، “اتصال” به backend را آزمایش کند. برای AJP، باعث می شود mod_proxy_ajp درخواست CPING را روی اتصال ajp13 ارسال کند (اجرا شده در Tomcat 3.3.2+، ۴٫۱٫۲۸+ و ۵٫۰٫۱۳+). برای HTTP، باعث می شود mod_proxy_http برای ارسال یک ۱۰۰-Continue به backend (فقط برای HTTP / 1.1 معتبر باشد – برای backend های غیر HTTP / 1.1، این ویژگی هیچ تأثیری ندارد). در هر دو مورد، پارامتر تاخیر در ثانیه است تا منتظر پاسخ باشد. این ویژگی اضافه شده است تا اجتناب از مشکالت با باند های آویزان و مشغول به کار باشد. این باعث افزایش ترافیک شبکه در حین عملیات عادی می شود که می تواند یک مشکل باشد، اما اگر برخی از گره های خوشه پایین یا مشغول به کار باشند، ترافیک را پایین می آورد. با اضافه کردن postfix ms، تاخیر نیز می تواند در میلی ثانیه تنظیم شود.

 

receivebuffersize ۰ تنظیم اندازه اندازه بافر شبکه صریح (TCP / IP) برای اتصالات پروکسی. این به شما اجازه می دهد که ProxyReceiveBufferSize را برای یک کارگر خاص لغو کنید. این باید حداقل ۵۱۲ باشد یا برای پیش فرض سیستم به ۰ باشد.

 

تغییر مسیر – مسیر هدایت کارگر. این مقدار معمولا به صورت پویا تنظیم می شود تا حذف ایمن گره را از خوشه انجام دهد. در صورت تنظیم، تمام درخواست ها بدون شناسه جلسه به BalancerMember هدایت می شوند که پارامتر مسیر برابر با این مقدار است.
تلاش مجدد ۶۰ کارگر استخر اتصال مجددا تلاش کند تا در عرض چند ثانیه خاتمه یابد. اگر کارگر استخر اتصال به سرور پشتیبان در وضعیت خطا باشد، آپاچی httpd هیچ گونه درخواستی به آن سرور را ارسال نمی کند تا زمانی که منقضی شود. این امکان را برای تعطیل کردن سرور پشت صحنه برای نگهداری فراهم می کند و بعدا دوباره آن را آنلاین می کند. مقدار ۰ بدان معنی است که همیشه کارگران را در یک حالت خطا بدون تردید مجددا تلاش می کنند.
 

مسیر

 

– مسیر کارگر هنگامی که در داخل متعادل کننده بار استفاده می شود. مسیر ارزش افزوده به شناسه جلسه است.

 

 

وضعیت ارزش یک حرف با تعریف وضعیت اولیه این کارگر.

 

D کارگر غیر فعال است و هیچ درخواستی را قبول نمی کند.

S: کارگر به طور مداوم متوقف شده است.

من: کارگر در حالت خطا نادیده گرفته می شود و همیشه در دسترس خواهد بود.

H: کارگر در حالت آماده به کار گرم است و تنها اگر هیچ کارگر قابل قبولی در دسترس نباشد، استفاده می شود.

E: کارگر در یک وضعیت خطا است.

N: کارگر در حالت تخلیه است و تنها جلسات چسبنده موجود را که برای خودشان تعیین شده است را قبول می کند و تمام درخواست های دیگر را نادیده می گیرد.

وضعیت را می توان تنظیم کرد (که به طور پیش فرض است) با prepending با ‘+’ یا حذف شده با prepending با ‘-‘. بنابراین، تنظیم “S-E” این کارگر را به توقف متصل می کند و علامت خطا را پاک می کند.

زمان وقفه ProxyTimeout زمان اتصال در ثانیه است. تعداد ثانیه ها آپاچی httpd منتظر داده های فرستاده شده توسط / به backend است.
ttl – زمان برای ارتباطات غیر فعال و ورودی استخر مربوط به اتصال، در ثانیه است. پس از رسیدن به این حد، اتصال دوباره استفاده نخواهد شد در بعضی موارد بعد بسته خواهد شد
flusher flush نام ارائه دهنده استفاده شده توسط mod_proxy_fdpass. برای جزئیات بیشتر مستندات این ماژول را ببینید.
راز –

 

ارزش مخفی که توسط mod_proxy_ajp استفاده می شود. برای جزئیات بیشتر مستندات این ماژول را ببینید.
upgrade WebSocket پروتکل در header ارتقاء توسط mod_proxy_wstunnel پذیرفته شده است. برای جزئیات بیشتر مستندات این ماژول را ببینید.

 

اگر برنامه دستورالعمل Proxy با تعادل شروع شود: // (به عنوان مثال: balancer: // cluster، هر اطلاعات مسیر نادیده گرفته می شود)، و سپس یک کارگر مجازی که واقعا با سرور پشتیبان ارتباط برقرار نمی شود ایجاد می شود. در عوض، آن را مسئول مدیریت چندین “واقعی” کارگران است. در این حالت، مجموعه خاصی از پارامترها می تواند به این کار مجازی افزوده شود. برای اطلاعات بیشتر در مورد نحوه عملکرد تعادل، به mod_proxy_balancer مراجعه کنید.

پارامترهای متعادل کننده

پارامتر پیش فرض توضیحات
 

lbmethod

 

 

byrequests

روش تعادل بار-. روش استفاده از زمان بندی متعادل کننده بار را انتخاب کنید. در صورت درخواست، برای انجام شمارش درخواست وزن؛ bytraffic، برای انجام شمارش توازن شمارش باایت وزن؛ یا سوپرایز، برای انجام تعادل درخواست در انتظار. پیشفرض پاسخهای درخواستی است.
حداکثر تلاش یک نفر کمتر از تعداد کارگران و یا ۱ نفر با یک کارگر است . حداکثر تعداد تلاش های شکست خورده قبل از دادن.
nofailover خاموش اگر تنظیم به روشن باشد، اگر کارگر در حالت خطا یا غیرفعال باشد، جلسه قطع خواهد شد. اگر این سرورها از تکرار پشتیبانی نمیکنند، این مقدار را بر روی On قرار دهید.

 

stickysession – نام جلسه چسبنده Balancer. ارزش معمولا به چیزی مانند JSESSIONID یا PHPSESSIONID تنظیم می شود، و بستگی به سرور نرم افزار Backend دارد که جلسات را پشتیبانی می کند. اگر سرور نرم افزار Backend از نام دیگری برای کوکی ها استفاده می کند و شناسه کدگذاری شده URL (مانند ظروف servlet) از | برای جدا کردن آنها استفاده میکند. بخش اول برای کوکی دوم برای مسیر است.

در Apache HTTP Server 2.4.4 و بعد از آن موجود است.

stickysessionse برچسب “. “ نماد جداسازی در کوکی جلسه را تنظیم می کند. بعضی از سرورهای کاربردی Backend از “.”. به عنوان نماد استفاده نمی کنند. برای مثال، سرور اوراکل Weblogic با استفاده از ‘!’ نماد درست را می توان با استفاده از این گزینه تنظیم کرد. تنظیم “خاموش” نشان می دهد که هیچ نمادی استفاده نمی شود.
scolonpathdelim خاموش اگر بر روی On تنظیم شود، شخصیت نیمه کولون ‘؛’ خواهد شد به عنوان یک مسیر جداگانه / separator مسیر مکمل اضافی استفاده می شود. این عمدتا برای انعکاس رفتار mod_jk در هنگام برخورد با مسیرها مانند JSESSIONID = 6736bcf34؛ foo = aabfa
تعطیلات ۰ تعلیق تعادل در ثانیه. ، این سیستم  حداکثر زمان برای یک کارگر آزاد صبر خواهد کرد. به طور پیش فرض صبر نیست
failonstatus – یک لیست جداگانه یا کاما از کدهای وضعیت HTTP جدا شده است. اگر تنظیم شود، این کار باعث می شود که کارگر در وضعیت خطا زمانی که Backend هر کد وضعیت را در لیست بازمی گرداند. بازیابی کارگر با سایر اشتباهات کارگر رفتار می کند.
failontimeout خاموش اگر مجموعه ای، یک IO خواندن زمان وقفه پس از درخواست به backend ارسال خواهد شد کارگر را به وضعیت خطا را مجبور. بازیابی کارگر با سایر اشتباهات کارگر رفتار می کند.

در Apache HTTP Server 2.4.5 و بعد از آن موجود است.

nonce <auto> محافظ مورد استفاده در صفحه برنامه balancer-manager. به طور پیش فرض این است که استفاده از یک nonce مبتنی بر UUID به صورت خودکار تعیین شده باشد تا حفاظت بیشتری برای صفحه فراهم شود. اگر تنظیم شود، nonce به آن مقدار تنظیم می شود. تنظیمات nonce. ک تمام چک کردن ها را غیر فعال میکند.

توجه داشته باشید

علاوه بر nonce، صفحه balance-manager باید از طریق ACL محافظت شود.

رشد ۰  تعداد BalancerMembers اضافی اجازه می دهد تا به این تعادل اضافه شده علاوه بر آن که در پیکربندی تعریف شده است.
forcerecovery روشن در صورت نیاز به بازپس دادن فوری تمام کارگران بدون توجه به پارامتر مجدد کارگران، اگر تمام کارگران متعادل کننده در حالت خطا باشند. ممکن است مواردی وجود داشته باشد که یک Backend در حال حاضر بیش از حد می تواند به مشکل عمیق تر برسد اگر بازیابی تمام کارگران بدون در نظر گرفتن پارامتر مجدد هر کارگر اجرا شود. در این مورد، تنظیم به خاموش

در Apache HTTP Server 2.4.2 و بعد از آن موجود است.

 

راه اندازی تعادل نمونه:

 

ProxyPass "/special-area" "http://special.example.com" smax=5 max=10

ProxyPass "/" "balancer://mycluster/" stickysession=JSESSIONID|jsessionid nofailover=On

<Proxy "balancer://mycluster">

    BalancerMember "ajp://1.2.3.4:8009"

    BalancerMember "ajp://1.2.3.5:8009" loadfactor=20

    # Less powerful server, don't send as many requests there,

    BalancerMember "ajp://1.2.3.6:8009" loadfactor=5

</Proxy>

تنظیم یک حالت آماده به کار داغ که تنها در صورت عدم وجود سایر اعضای دیگر مورد استفاده قرار می گیرد:

ProxyPass "/" "balancer://hotcluster/"

<Proxy "balancer://hotcluster">

    BalancerMember "ajp://1.2.3.4:8009" loadfactor=1

    BalancerMember "ajp://1.2.3.5:8009" loadfactor=2

    # The server below is on hot standby

    BalancerMember "ajp://1.2.3.6:8009" status=+H

    ProxySet lbmethod=bytraffic

</Proxy>

کلمات کلیدی ProxyPass اضافی

به طور معمول، mod_proxy می تواند URL های ProxyPassed را کپی کند. اما این ممکن است با برخی از backends ها ناسازگار باشد، مخصوصا کسانی که از PATH_INFO استفاده می کنند. کلیدواژه اختیاری nocanon این را سرکوب می کند و مسیر URL را “raw” را به backend منتقل می کند. توجه داشته باشید که این کلمه کلیدی ممکن است بر روی امنیت بنده شما تأثیر بگذارد، زیرا حفاظت محدود نرمال را در برابر حملات مبتنی بر URL ارائه شده توسط پروکسی برطرف می کند.

به طور معمول، mod_proxy در هنگام ایجاد متغیر محیطی SCRIPT_FILENAME رشته پرس و جو را شامل می شود. کلمه کلیدی مورد نظر (در دسترس در httpd 2.4.1 و بعد از آن) از این کار جلوگیری می کند.

کلمه کلیدی interpolate اختیاری، در ترکیب با ProxyPassInterpolateEnv باعث می شود که ProxyPass متغیرهای محیطی را با استفاده از نحو $ {VARNAME} تعامل کند. توجه داشته باشید که بسیاری از متغیرهای محیطی حاصل از CGI استاندارد وجود ندارد زمانی که این درگیری رخ می دهد، بنابراین شما ممکن است هنوز مجبور به استفاده از mod_rewrite برای قوانین پیچیده است. همچنین توجه داشته باشید که درون طرح بندی در بخش طرح یک URL پشتیبانی نمی شود. تعیین دینامیکی این طرح با mod_rewrite در مثال زیر امکان پذیر است.

 

RewriteEngine On



RewriteCond "%{HTTPS}" =off

RewriteRule "." "-" [E=protocol:http]

RewriteCond "%{HTTPS}" =on

RewriteRule "." "-" [E=protocol:https]



RewriteRule "^/mirror/foo/(.*)" "%{ENV:protocol}://backend.example.com/$1" [P]

ProxyPassReverse  "/mirror/foo/" "http://backend.example.com/"

ProxyPassReverse  "/mirror/foo/" "https://backend.example

دستورالعمل ProxyPassInherit

توضیحات: دستورالعمل های Inherit ProxyPass از سرور اصلی تعریف شده است

نحو: ProxyPassInherit در | خاموش

پیش فرض: ProxyPassInherit On

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: ProxyPassInherit فقط در آپاچی HTTP Server 2.4.5 و بعدا در دسترس است.

این دستور باعث می شود که سرور / vhost فعلی “دستورات پروکسیپس” را به ارث برده باشد که در سرور اصلی تعریف شده است. در صورت استفاده از مدیریت Balancer برای تغییرات پویا، این می تواند باعث مسائل و رفتار نا متناسب باشد، بنابراین اگر از این ویژگی استفاده کنید، باید غیر فعال شود.

تنظیم در سرور جهانی، پیش فرض را برای تمام vhosts تعریف می کند.

غیر فعال کردن ProxyPassInherit همچنین BalancerInherit را غیرفعال می کند.

دستورالعمل ProxyPassInterpolateEnv

شرح: محیط زیست متغیر را در تنظیمات معکوس پروکسی فعال کنید

نحو: ProxyPassInterpolateEnv در | خاموش

پیش فرض: ProxyPassInterpolateEnv خاموش

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_proxy

سازگاری: موجود در httpd 2.2.9 و بعد از آن

این دستور، همراه با استدلال درونی ProxyPass، ProxyPassReverse، ProxyPassReverseCookieDomain و ProxyPassReverseCookiePath، پراکسی های معکوس را به صورت پویا به صورت پویا با استفاده از متغیرهای محیطی که ممکن است توسط یک ماژول دیگری مانند mod_rewrite تنظیم شود، فراهم می کند. این براساس دستورالعمل ProxyPass، ProxyPassReverse، ProxyPassReverseCookieDomain و ProxyPassReverseCookiePath تأثیر می گذارد و باعث می شود که مقدار varname متغیر محیطی برای رشته $ {varname} در دستورالعمل های پیکربندی، اگر گزینه interpolate تنظیم شود، جایگزین شود.

این را خاموش کنید (برای عملکرد سرور) مگر اینکه به آن نیاز دارید!

دستورالعمل ProxyPassMatch

توضیحات: نقشه های سرور های راه دور را به سرور URL محلی فضای محلی با استفاده از عبارات منظم

نحو: ProxyPassMatch [regex]! | url [key = value [key = value …]]

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_proxy

این دستور معادل ProxyPass است اما استفاده از عبارات منظم به جای تطبیق پیشوند ساده را انجام می دهد. عبارات منظم عرضه شده در برابر آدرس منطبق است و اگر آن را مطابقت دهد، هر گونه بازیابی پرانتز را به رشته داده شده جایگزین می کند و از آن به عنوان یک آدرس جدید استفاده می کند.

نکته: این دستور را نمی توان در context <Directory> استفاده کرد.

فرض کنید سرور محلی آدرس http://example.com/ دارد سپس

ProxyPassMatch "^ / (. * \. gif) $" "http://backend.example.com/$1"

یک درخواست محلی برای http://example.com/foo/bar.gif به صورت داخلی به یک درخواست پروکسی به http://backend.example.com/foo/bar.gif تبدیل می شود.

توجه داشته باشید

آرگومان URL باید قبل از تعویض regexp (و همچنین بعد از آن) به عنوان یک URL به عنوان یک URL قابل تجزیه باشد. این مسابقات شما می توانید استفاده کنید. به عنوان مثال، اگر ما استفاده کرده بودیم

ProxyPassMatch “^ (/.* \. gif) $” “http://backend.example.com:8000$1”

در مثال قبلی ما، آن با یک خطای نحوی در راه اندازی سرور شکست خورده است. این یک اشکال است (PR 46665 در bugzilla ASF)، و راه حل این است که اصلاح بازی:

ProxyPassMatch "^ / (. * \. gif) $" "http://backend.example.com:8000/$1"

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

هنگامی که در بخش <LocationMatch> استفاده می شود، اولین استدلال حذف می شود و regexp از <LocationMatch> بدست می آید.

اگر شما نیاز به یک پیکربندی مجدد معکوس پروکسی دارید، دستورالعمل RewriteRule با پرچم [ [p را ببینید.

تعویض پیش فرض

هنگامی که پارامتر URL از هیچ پیوند برگشتی به عبارات منظم استفاده نمی کند، URL اصلی به پارامتر URL اضافه می شود.

هشدار امنیتی

هنگام ساخت URL هدف از قانون مراقب باشید، با توجه به تأثیرات امنیتی از اجازه دادن به نفوذ مشتری بر روی مجموعه ای از URL ها که سرور شما به عنوان یک پروکسی عمل می کند، مراقبت کنید. اطمینان حاصل کنید که طرح و نام میزبان بخشی

از URL یا ثابت است یا نفوذ ناقص مشتری را اجازه نمی دهد.

دستورالعمل ProxyPassReverse

توضیحات: URL را در هدرهای پاسخ HTTP فرستاده شده از سرور معکوس معکوس تنظیم می کند

نحو: ProxyPassReverse [path] url [interpolate]

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_ proxy

این دستور باعث می شود آپاچی httpd URL را در قسمت های Location، Content-Location و URI در پاسخ های هدایت HTTP تنظیم کند. این مهم است که آپاچی httpd به عنوان یک پروکسی معکوس (یا دروازه) برای جلوگیری از دور زدن پروکسی معکوس به دلیل هدایت HTTP در سرورهای باطن که در پشت پروکسی معکوس باقی می مانند، مورد استفاده قرار گیرد.

فقط هدرهای پاسخ HTTP که به طور خاص در بالا ذکر شد، بازنویسی خواهند شد. Apache httpd دیگر هدرهای پاسخ را بازنویسی نخواهد کرد و به طور پیش فرض نشانیهای اینترنتی URL را درون صفحات HTML بازنویسی نخواهد کرد. این به این معنی است که اگر محتوای پروکسی حاوی آدرسهای مطلق URL باشد، آنها پروکسی را دور میزنند. برای بازنویسی محتوای HTML برای مطابقت با پروکسی، باید mod_proxy_html بارگیری کنید و فعال کنید.

مسیر نام یک مسیر مجازی محلی است؛ URL یک URL جزئی برای سرور راه دور است. این پارامترها همانند دستورالعمل ProxyPass استفاده می شوند.

به عنوان مثال فرض کنید سرور محلی آدرس http://example.com/ دارد سپس

ProxyPass "/ mirror / foo /" "http://backend.example.com/"

ProxyPassReverse "/ mirror / foo /" "http://backend.example.com/"

ProxyPassReverseCookieDomain "backend.example.com" "public.example.com"

ProxyPassReverseCookiePath "/" "/ mirror / foo /"

نه تنها موجب درخواست محلی برای http://example.com/mirror/foo/bar می شود که به صورت داخلی به یک درخواست پروکسی به http://backend.example.com/bar تبدیل شود (قابلیت هایی که ProxyPass در اینجا فراهم می کند) . همچنین مراقبت از هدایت هایی که سرور backend.example.com می فرستد هنگام هدایت http://backend.example.com/bar به http://backend.example.com/quux منتقل می شود. آپاچی httpd این را به http://example.com/mirror/foo/quux تنظیم می کند قبل از فرستادن پاسخ HTTP تغییر مسیر به مشتری. توجه داشته باشید که نام میزبان مورد استفاده برای ساخت نشانی اینترنتی در رابطه با تنظیمات directive UseCanonicalName انتخاب شده است.

توجه داشته باشید که این دستور Proxy PassReverse همچنین می تواند در رابطه با ویژگی پروکسی (RewriteRule … [P]) از mod_rewrite استفاده شود، زیرا به وابسته به یک دستورالعمل Proxy Pass وابسته نیست.

کلمه کلیدی interpolate اختیاری است که با Proxy PassInterpolateEnv مورد استفاده قرار می گیرد، interpolation متغیرهای محیطی را با استفاده از فرمت $ {VARNAME} مشخص می کند. توجه داشته باشید که interpolation در بخش طرح یک URL پشتیبانی نمی شود.

هنگامی که در داخل بخش <Location> استفاده می شود، اولین استدلال حذف می شود و دایرکتوری محلی از <Location> بدست می آید. همان اتفاق می افتد در بخش <LocationMatch>، اما احتمالا به عنوان در نظر گرفته نمی شود، زیرا Proxy PassReverse به معنای واقعی کلمه به عنوان یک مسیر تفسیر خواهد شد؛ در صورت نیاز در این وضعیت، Proxy PassReverse را خارج از بخش یا در قسمت <Location> جداگانه مشخص کنید.

این دستور در قسمت <Directory> یا <Files> پشتیبانی نمی شود.

دستورالعمل ProxyPassReverseCookieDomain

شرح: تنظیم رشته دامنه در هدر مجموعه کوکی از یک سرور معکوس پروکسی

نحو: Proxy PassReverseCookieDomain دامنه عمومی دامنه [interpolate]

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_proxy

استفاده عمدتا به Proxy PassReverse شبیه است، اما به جای بازنویسی هدرهایی که یک URL هستند، این رشته دامنه را در header های Set-Cookie بازنویسی می کند.

دستور ProxyPassReverseCookiePath

توضیحات: رشته مسیر را در هدرهای Set-Cookie از یک سرور مجاور معکوس تنظیم می کند

نحو: Proxy PassReverseCookiePath مسیر داخلی داخلی path-path [interpolate]

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_ proxy

در رابطه با Proxy PassReverse در مواردی که مسیرهای URL باطن به مسیرهای عمومی بر روی پروکسی معکوس مرتبط می شوند مفید است. این دستورالعمل رشته مسیر را در header های Set-Cookie بازنویسی می کند. اگر شروع مسیر کوکی مسیر داخلی را دنبال کند، مسیر کوکی با مسیر عمومی جایگزین خواهد شد.

در مثال با Proxy PassReverse، دستورالعمل:

ProxyPassReverseCookiePath "/" "/ mirror / foo /"

کوکی را با مسیر/ (or /example or, in fact, anything) to /mirror/foo/. بازنویسی خواهد کرد.

دستورالعمل ProxyPreserveHost

توضیحات: استفاده از هدر درخواست HTTP میزبان ورودی برای درخواست پروکسی

نحو: Proxy PreserveHost در | خاموش

پیش فرض: Proxy PreserveHost خاموش است

context: پیکربندی سرور، میزبان مجازی، دایرکتوری

وضعیت: فرمت

ماژول: mod_ proxy

سازگاری: قابل استفاده در زمینه دایرکتوری در ۲٫۳٫۳ و بعد.

هنگامی که فعال شود، این گزینه خط میزبان را از درخواست ورودی به میزبان پروکسی عبور می کند، به جای نام میزبان مشخص شده در خط ProxyPass.

این گزینه معمولا باید خاموش شود. این عمدتا در تنظیمات خاص مانند میزبانی مجازی مبتنی بر نام توده پروکسی، که در آن هدر میزبان اصلی باید توسط سرور پشتیبان مورد ارزیابی قرار گیرد مفید باشد.

دستورالعمل ProxyReceiveBufferSize

شرح: حجم بافر شبکه برای اتصالات پروتکل HTTP و FTP

نحو: بایت Proxy ReceiveBufferSize

پیش فرض: Proxy ReceiveBufferSize 0

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

دستور Proxy ReceiveBufferSize یک اندازه بافر شبکه صریح (TCP / IP) را برای اتصالات پروتکل HTTP و FTP برای افزایش کارایی مشخص می کند،. باید بیشتر از ۵۱۲ باشد یا باید ۰ باشد تا نشان دهد که اندازه حافظه پیشفرض سیستم باید استفاده شود.

مثال

ProxyReceiveBufferSize 2048

دستورالعمل ProxyRemote

شرح: پروکسی از راه دور برای رسیدگی به درخواست های خاص استفاده می شود

نحو: Proxy Remote بازی از راه دور سرور

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_ proxy

این پروکسی های از راه دور را به این پروکسی تعریف می کند. مطابقت، یا نام یک برنامه URL است که سرور از راه دور پشتیبانی می کند، یا یک URL جزئی که برای استفاده از سرور از راه دور استفاده می شود، یا * نشان می دهد که سرور باید با تمام درخواست ها تماس بگیرد. سرور از راه دور URL جزئی برای سرور راه دور است. نحو:

remote-server = schema: // hostname [: port]

طرح به طور موثر پروتکل است که باید برای برقراری ارتباط با سرور از راه دور استفاده شود؛ فقط این http و https توسط این ماژول پشتیبانی می شود. هنگام استفاده از https، درخواست ها از طریق پروکسی راه دور با استفاده از روش HTTP CONNECT ارسال می شوند.

مثال

ProxyRemote "http://goodguys.example.com/" "http://mirrorguys.example.com:8000"

ProxyRemote "*" "http: //cleverproxy.localdomain"

ProxyRemote "ftp" "http: //ftpproxy.mydomain: 8080"

در مثال آخر، پروکسی درخواست FTP را که به عنوان یکی دیگر از پروکسی HTTP درخواست شده است، به پروکسی دیگر منتقل می کند که می تواند آنها را اداره کند.

این گزینه همچنین از پیکربندی پروکسی معکوس پشتیبانی می کند. یک وب سرور باطن را می توان در فضای آدرس مجازی مجازی جاسازی کرد، حتی اگر این سرور توسط یک پروکسی جلو دیگر پنهان شده باشد.

دستورالعمل ProxyRemoteMatch

شرح: پروکسی از راه دور مورد استفاده برای رسیدگی به درخواست های منطبق با عبارات منظم

نحو: Proxy RemoteMatch regex remote-server

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_proxy

ProxyRemoteMatch با دستورالعمل Proxy Remote برابر است، به جز اینکه اولین آرگومان یک عبارت منظم مطابق با URL درخواست شده است.

دستورالعمل ProxyRequests

توضیحات: درخواست پیش فرض (استاندارد) را انجام می دهد

نحو: Proxy Requests در | خاموش

پیش فرض: Proxy Requests خاموش است

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_ proxy

این اجازه می دهد  به عنوان یک سرور پروکسی جلو از آپاچی httpd جلوگیری می کند. (تنظیم ProxyRequests به خاموش استفاده از دستورالعمل ProxyPass را غیر فعال نمی کند.)

در یک پیکربندی پروکسی معکوس یا دروازه، این گزینه باید به خاموش شود.به منظور دسترسی به پروکسی HTTP یا FTP سایت ها، شما همچنین باید mod_ proxy_http یا mod_ proxy_ftp (یا هر دو) موجود در سرور باشد.به منظور دستیابی به سایتهای HTTPS پروکسی (forward)، شما نیاز به mod_ proxy _connect فعال در سرور دارید.

هشدار

پروکسی را با Proxy Requests فعال نکنید تا سرور خود را امن کنید. سرورهای پروکسی باز برای هر دو شبکه و به اینترنت در خطر هستند.

همچنین نگاه کنید

  • جلو و معکوس پروکسی ها / دروازه ها

دستورالعمل ProxySet

شرح: تنظیم کننده های مختلف پراکسی یا پارامترهای عضو

نحو: Proxy Set url key = value [کلید = مقدار …]

متن: دایرکتوری

وضعیت: فرمت

م سازگاری: Proxy Set تنها در آپاچی HTTP Server 2.2 و بعدا در دسترس است.

ماژول: mod_ proxy

این دستورالعمل به عنوان یک روش جایگزین برای تنظیم هر یک از پارامترهای موجود برای تعادل پراکسی و کارگران به طور معمول از طریق دستور Proxy Pass انجام می شود. اگر در داخل دستورالعمل کانتینر <Proxy balancer url | worker url> استفاده شود، استدلال url مورد نیاز نیست. به عنوان یک اثر جانبی، تعادل یا کارگر مربوطه ایجاد می شود. این می تواند هنگام انجام معکوس کردن از طریق RewriteRule به جای یک دستور Proxy Pass مفید باشد.

<Proxy "balancer: // hotcluster">

    BalancerMember "http://www2.example.com:8080" loadfactor = 1

    BalancerMember "http://www3.example.com:8080" loadfactor = 2

    ProxySet lbmethod = bytraffic

</ proxy>

<پروکسی "http: // backend">

    ProxySet keepalive = روشن است

</ proxy>

ProxySet "balancer: // foo" lbmethod = traffic timeout = 15

ProxySet "ajp: // backend: 7001" timeout = 15
هشدار

در نظر داشته باشید که همان کلید پارامتر می تواند معنی مختلفی داشته باشد که این بستگی به اینکه آیا آن را به یک متعادل کننده یا یک کارگر اعمال می شود، همانطور که در دو مثال بالا در مورد زمان وقوع نشان داده شده است.

دستورالعمل ProxySourceAddress

توضیحات: تنظیم آدرس IP محلی برای اتصالات پروکسی خروجی

نحو: آدرس Proxy SourceAddress

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_ proxy

سازگاری: موجود در نسخه ۲٫۳٫۹ و بعد

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

دستورالعمل ProxyStatus

توضیحات: نمایش وضعیت Proxy LoadBalancer در mod_status

نحو: Proxy Status خاموش | در | کامل

پیش فرض: Proxy Status خاموش است

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_ proxy

سازگاری: موجود در نسخه ۲٫۲ و بعد

این دستورالعمل تعیین می کند که آیا داده وضعیت وضعیت بارگذاری پروکسی از طریق وضعیت وضعیت سرور وضعیت mod_status نمایش داده می شود یا خیر.

توجه داشته باشید

کامل مترادف با On است

دستورالعمل ProxyTimeout

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

نحو: Proxy Timeout ثانیه

پیش فرض: مقدار وقفه

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_ proxy

این دستورالعمل اجازه می دهد تا یک کاربر برای تعیین زمان وقفه در درخواست های پروکسی. این مفید است هنگامی که شما یک برنامه برنامه آهسته / حباب که آویزان است، و شما ترجیح می دهید فقط زمان وقفه را بازگردانید و به جای انتظار منتظر بمانید، هر چند طولانی است که سرور برای بازگشت به آن نیاز دارد.

دستورالعمل ProxyVia

شرح: اطلاعات ارائه شده در هدر پاسخ Via HTTP برای درخواست های پروکسی

نحو: Proxy Via در | خاموش | کامل | بلوک

پیش فرض: Proxy Via خاموش است

زمینه: پیکربندی سرور، میزبان مجازی

وضعیت: فرمت

ماژول: mod_ proxy

این دستورالعمل استفاده از هدر از طریق HTTP توسط پروکسی را کنترل می کند. استفاده از آن در نظر گرفته شده برای کنترل جریان درخواست های پروکسی در امتداد زنجیره ای از سرورهای پروکسی است. برای توضیح خطوط سربرگ Via: RFC 2616 (HTTP / 1.1)، بخش ۱۴٫۴۵ را ببینید.

  • اگر بر روی Off تنظیم شده باشد، به طور پیش فرض، پردازش خاصی انجام نمی شود. اگر یک درخواست یا پاسخ شامل یک هدر از طریق: از طریق بدون تغییر منتقل می شود.
  • اگر بر روی On تنظیم شود، هر درخواست و پاسخ یک خط Header از طریق: برای میزبان کنونی اضافه می شود.
  • اگر به Full تنظیم شده باشد، هر خط تولید شده از طریق: header علاوه بر این نسخه آپاچی HTTP سرور را نیز به عنوان فیلد Comment از طریق: نشان می دهد.
  • اگر بر روی Block تنظیم شود، هر پروکسی درخواست تمام خطوط Header خود را از طریق آن حذف خواهد کرد. No new Via: header تولید خواهد شد.
بارگذاری نوشته های مرتبط بیشتر
مطالب بیشتر از این نویسنده مرجان کاظمی
  • proxy_fcgi

    معرفی و آشنایی با Apache Module mod_ proxy_fcgi

    به دنبال هاست خوب هستید؟ با چیتاهاست بهترین ارائه دهنده هاست های لینوکس و ویندوز و سرور مج…
  • MPM

    معرفی و آشنایی با Apache MPM prefork

    دوستان عزیزی که قصد خرید هاست لینوکس ویندوز و سرور مجازی را دارند با چیتاهاست همراه باشند …
  • headers

    آشنایی با Apache Module mod_ headers

    چیتاهاست بهترین ارائه دهنده سرور های مجازی هاست لینوکس ویندوزَ و هاست نرم افزاری می باشد ب…
بارگذاری بیشتر در وب سرور Easy Apache

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بررسی کنید

معرفی و آشنایی با Apache Module mod_ proxy_fcgi

به دنبال هاست خوب هستید؟ با چیتاهاست بهترین ارائه دهنده هاست های لینوکس و ویندوز و سرور مج…