configurare automată proxy

Formatul de tuning fișier proxy în Navigator

(La sfârșitul documentului câteva exemple și sfaturi.)

care va fi numit Navigator-ohm pentru fiecare adresă URL, pe care el va descărca, în modul următor:

URL - întreg URL-ul, la care doriți să îl accesați.
gazdă - numele de gazdă este eliminat din adresa URL. Acest lucru se face doar pentru comoditate, este doar un șir de caractere între „//“ și primul caracter“. „Sau“ / „după. numărul de port nu este inclus, acesta poate fi îndepărtat, dacă este necesar.
ret - (valoarea de retur) linie configurația proxy. format șir este descris mai jos.

Se salvează fișierul de tuning și setarea de tip MIME

Nota 2: Exemple de la sfârșitul acestui document gata de plecare. Pentru a le utiliza, nu face nicio modificare de sintaxă în ele (dar, desigur, trebuie să editați script-ul, astfel încât acesta face referire la domenii și / sau subrețeaua dvs.).

În continuare, trebuie să configurați serverul pentru a extinde .pac îndeplinesc următoarele tipul MIME:

Dacă utilizați un server Netscape, trebuie să editați fișierul mime.types în config. Dacă utilizați servere Apache, CERN sau NCSA, trebuie să utilizați directiva AddType.

Formatul șirului returnat

În cazul în care șirul - nul. proxy-ul nu va fi utilizat.

Șirul poate conține orice număr de blocuri, separate prin virgulă:

DIRECT - conexiunea trebuie să fie instalat direct, fără un proxy.
PROXY host: port - utilizați acest proxy.
Gazdă Socks: portul - utilizați specificat SOCKS-server.

Dacă mai multe setări vor fi utilizate cele mai rămas până la Navigator se poate conecta la proxy. În cazul indisponibilității proxy va utiliza următoarele valori, etc.

Navigator va încerca automat să se conecteze la proxy disponibilă după primele 30 de minute, apoi 1 oră după încercarea anterioară (de fiecare dată când adăugarea de încă 30 de minute).

Dacă toate proxy-uri nu sunt disponibile, iar opțiunea DIRECT nu este specificat, Navigator va cere utilizatorului dacă să ignore setările proxy și popytatetsya utilizați o conexiune directă. După 20 de minute Navigator solicită să actualizați configurația proxy (40 de minute după solicitarea anterioară, adăugând de fiecare dată 20 de minute).

PROXY w3proxy.netscape.com:8080; PROXY mozilla.netscape.com:8081

proxy primar - w3proxy: 8080; dacă acesta nu este disponibil, utilizați mozilla: 8081 până primar nu devin din nou disponibile.

PROXY w3proxy.netscape.com:8080; PROXY mozilla.netscape.com:8081; DIRECT

La fel ca mai sus, dar dacă ambele nu sunt disponibile proxy, începe automat utilizând o conexiune directă. (În exemplul precedent, confirmarea Netscape solicita utilizatorului să folosească o conexiune directă, a treia metodă este utilizarea compusului nu necesită intervenția utilizatorului.)

PROXY w3proxy.netscape.com:8080; SOCKS șosete: 1080

Utilizați SOCKS, în cazul în care proxy-ul principal nu este disponibil.

gazdă - numele de gazdă în URL-ul (fără un număr de port).

Adevărul este, în cazul în care numele de gazdă nu conține numele de domeniu (fără puncte).

isPlainHostName ( "www") - adevărul.
isPlainHostName ( "www.netscape.com") - o minciună.

gazdă - numele de gazdă de la adresa URL.
domeniu - numele de domeniu pentru comparația cu numele gazdei.

Returnează „true“ dacă numele de domeniu se potrivește cu numele gazdei.

dnsDomainIs ( "www.netscape.com", ".netscape.com") - adevărul.
dnsDomainIs ( "www", ".netscape.com") - o minciună.
dnsDomainIs ( "www.mcom.com", ".netscape.com") - o minciună.

gazdă - numele de gazdă de la adresa URL.
hostdom - nume complet specificat pentru comparație.

„Adevărul“, în cazul în care numele de gazdă se potrivește exact cu numele dat sau numele de gazdă nu este o parte a numelui de domeniu, și meciuri de piese nespecificate.

localHostOrDomainIs ( "www.netscape.com", "www.netscape.com") - adevăr (potrivirea exactă).
localHostOrDomainIs ( „www“, „www.netscape.com“) - adevăr (același nume de gazdă, iar domeniul nu este specificat).
localHostOrDomainIs ( "www.mcom.com", "www.netscape.com") - o minciună (nu la fel ca nume de domeniu).
localHostOrDomainIs ( "home.netscape.com", "www.netscape.com") - o minciună (nu la fel ca numele gazdei).

gazdă - numele de gazdă de la adresa URL.

isInNet (gazdă, model, mască)

dnsResolve ( "home.netscape.com") returnează șirul "198.95.249.79".

gazdă - numele de gazdă de la adresa URL.

Returnează nivel (un număr întreg) al domeniului (numărul de puncte în numele).

dnsDomainLevels ( "www") returnează 0.
dnsDomainLevels ( "www.netscape.com") returnează 2.

str - orice șir pentru verificarea conformității (cum ar fi o adresă URL sau nume de gazdă).
shexp - pentru model de verificare.

Returnează "true" dacă shexp meciuri str. Aici este modelul de expresie în stil shell (ca în bash sau linia de comandă Windows), nu este o expresie regulată.

weekdayRange (WD1, wd2, gmt)

WD1 și wd2 - șir de caractere cu numele de ziua săptămânii, unul dintre: SUN MON MA MI JO VI SAT.
GMT - sau o linie GMT. sau nu sunt specificate.

Numai primul parametru este obligatoriu. Iar al doilea și al treilea poate fi omisă. Dacă numai primul argument, functia returneaza „true“ în ziua săptămânii, care este reprezentată de primul parametru. Dacă „GMT“ șir de caractere specificat ca un al doilea parametru. timpul este determinat de GMT, utilizați în caz contrar, ora locală.

În cazul în care ambele sunt furnizate și WD1. și wd2. „Adevărat“ este returnat în cazul în care ziua curentă a săptămânii este între aceste zile inclusiv. Dacă specificați parametrul „GMT“. utilizați Greenwich Mean Time, sau - locală.

weekdayRange ( "MON", "FRI") - într-adevăr, de luni până vineri (ora locală).
weekdayRange ( "MON", "FRI", "GMT") - este același, dar Greenwich (GMT).
weekdayRange ( "SAT") - este adevărat sâmbătă (ora locală).
weekdayRange ( "SAT", "GMT") - este adevarat sâmbătă (GMT).
weekdayRange ( "FRI", "MON") - este adevărat vineri până luni (notă - ordinea este importantă!).

DATERANGE (zi)
DATERANGE (day1, Day2)
DATERANGE (mon)
DATERANGE (lună1, month2)
DATERANGE (an)
DATERANGE (an1, an2)
DATERANGE (day1, lună1, Day2, month2)
DATERANGE (lună1, an1, month2, an2)
DATERANGE (day1, lună1, an1, Day2, month2, an2)
DATERANGE (day1, lună1, an1, Day2, month2, year2, gmt)

Deși în exemplele anterioare, nu este afișat, parametrul „GMT“ poate fi folosit în oricare din cele 9 moduri de a apela, întotdeauna ca o ultimă opțiune.

timeRange (ora)
timeRange (oră1, hour2)
timeRange (oră1, min1, hour2, min2)
timeRange (oră1, min1, Sec1, hour2, min2, sec2)
timeRange (oră1, min1, Sec1, hour2, min2, sec2, gmt)

ora - ora 0-23 (0 - miezul nopții 23 - 23).
min - minute de la 0 la 59.
sec - secunde de la 0 la 59.
GMT - un șir de caractere "GMT" pentru fusul orar GMT (Greenwich Mean Time). Dacă nu este specificat, se va utiliza ora locală. Din nou, cu toate că acest lucru nu se reflectă în exemple, acest parametru poate fi utilizat în orice caz, întotdeauna ultima.

True (sau interval) din timp.

timeRange (12) - adevărat de la prânz până la 13.
timeRange (12, 13) - același lucru.
timeRange (12, "GMT") - este adevărat de la prânz până la ora UTC de 1 (GMT).
timeRange (9, 17) - cu adevărat ora 9 17.
timeRange (8, 30, 17, 00) - adevărat de la 08:30 la 17:00.
timeRange (0, 0, 0, 0, 0, 30) - de la miezul nopții adevărat în termen de 30 de secunde.

Acest lucru va lucra în domeniul Netscape. Compusul cu gazda definit incomplet sau gazde pe domeniul local, se va face în mod direct. Orice altceva va fi direcționat prin w3proxy: 8080. În cazul în care proxy-ul nu răspunde, conexiunea se face direct.

Notă: Acesta este cel mai simplu și mai eficient fișier de tuning pentru cazul în care există doar un singur proxy.

Exemplul 1b: La fel ca mai sus, dar utilizați un proxy pentru serverul local, care se află în spatele firewall-

Dacă există gazde (cum ar fi serverul web principal), care sunt situate în domeniu local, dar în spatele firewall, și sunt disponibile numai printr-un server proxy, o astfel de excludere pot fi prelucrate cu ajutorul localHostOrDomainIs) funcția (.

Codul de mai sus va folosi proxy pentru tot ceea ce, cu excepția gazde netscape.com în domeniu. și gazde www.netscape.com și merchant.netscape.com.

Fiți atenți la ordinea gazdelor, care afectează eficiența: localHostOrDomainIs () este apelată numai pentru URL-ul din domeniu local, și nu pentru toată lumea. Notă paranteze în expresie, care sunt adăugate pentru a atinge eficiența menționată mai sus.

Acest exemplu va funcționa numai într-un mediu în care DNS intern este configurat astfel încât să poată recunoaște numai numele de gazdă intern, și scopul acestor setări - utilizarea unui server proxy numai pentru gazde neidentificate:

Acest cod necesită o referință cu privire la DNS cu fiecare apel; acesta poate fi grupată cu alte reguli, astfel încât DNS necesare doar în cazul în care alte reguli nu dau rezultatul:

Exemplul 3: Efectuarea unei decizii pe baza informațiilor de subrețea

În acest exemplu, conectarea la gazde pe subrețea produsă în mod direct, și toate celelalte - prin proxy.

Din nou, utilizarea DNS poate fi minimalizat prin adăugarea de verificări suplimentare înainte de a apela isInNet ().

Exemplul 4: Distribuția de încărcare și URL de redirecționare model

Acest exemplu - este mult mai complicat. Există patru (4) server proxy, dintre care unul, backup (hot stand-by), înlocuiește celelalte în caz de eșec.

În plus, trei dintre primul serviciu de proxy său adresa URL - fiecare are propria zonă, care se adaugă la eficiența cache (din orice document încărcat - un singur exemplar, pe unul dintre cele trei servere, mai degrabă decât pe fiecare dintre ele). Sarcina este distribuită aproximativ după cum urmează:

Exemplul 5: Stabilirea unui proxy pentru un anumit protocol

Rețineți că același lucru poate fi realizat cu ajutorul funcției shExpMatch () descrisă anterior; de exemplu: