Izņemot Apache, Nginx ir vispopulārākais pieejamais tīmekļa serveris. Papildus tam, ka tas ir tīmekļa serveris, to var izmantot arī kā slodzes balansētāju vai reverso starpniekserveri. Šajā apmācībā Quantrimang.com parādīs, kā varat izmantot Nginx kā apgriezto starpniekserveri.
Kas ir apgrieztais starpniekserveris?
Starpniekserveris darbojas kā starpnieks starp klientu un citu serveri. Starpniekserveris izgūst resursus no servera, ar kuru vēlaties izveidot savienojumu, un nosūta tos jums apskatei. Apgrieztais starpniekserveris darbojas tāpat, izņemot to, ka lomas ir apgrieztas. Kad pieprasāt informāciju no servera, reversais starpniekserveris saglabā pieprasījumu un nosūta to uz atbilstošo aizmugursistēmas serveri. Tas ļauj sistēmas administratoriem izmantot serveri vairākām lietojumprogrammām, kā arī nodrošina vienmērīgāku trafika plūsmu starp klientu un serveri.

Reverso starpniekserveru priekšrocības
Atkarībā no jūsu lietojumprogrammas jums var būt dažādi apgrieztā starpniekservera lietošanas gadījumi.
- Reversais starpniekserveris ļauj darbināt vairākas lietojumprogrammas vienā serverī — ja vienā serverī darbojas vairākas lietojumprogrammas, tās visas nevar vienlaikus “klausīties” portā 80 vai 433. Izmantojot apgriezto starpniekserveri, varat to konfigurēt. lai vajadzības gadījumā novirzītu trafiku uz atsevišķām lietojumprogrammām.
- Slodzes līdzsvarošana — ja jums ir vairāki serveri, kuros darbojas viena un tā pati lietojumprogramma, varat izmantot reverso starpniekserveri, lai vienmērīgi sadalītu trafiku katram serverim.
- Tīmekļa lietojumprogrammu ugunsmūris — varat izmantot reverso starpniekserveri, lai paslēptu savu lietojumprogrammu, kā arī filtrētu surogātpasta IP vai aizsargātu pret DDOS uzbrukumu .
- Vienkārša reģistrēšana un auditēšana — tā kā visu ienākošo trafiku pārvalda reversais starpniekserveris, ir vieglāk reģistrēt un pārraudzīt satiksmes plūsmas.
Konfigurējiet Nginx kā reverso starpniekserveri
Lai iestatītu Nginx kā apgriezto starpniekserveri, rakstā tiks izmantots parametrs proxy_pass Nginx konfigurācijas failā.
Piezīme . Šajā apmācībā tiek pieņemts, ka jums ir zināmas zināšanas par Nginx un ka esat instalējis un iestatījis Nginx savā serverī.
Vairumā gadījumu Nginx būs priekšgala serveris, kas ienākošajiem pieprasījumiem “klausās” portā 80 (HTTP) vai 443 (HTTPS). Tā kā portā 80 vai 443 var “klausīties” tikai viens pakalpojums, jūsu lietojumprogrammai būs “jāklausās” citā portā, piemēram, portā 8081. Vienkāršākā konfigurācija izskatīsies šādi:
server {
listen 80;
listen [::]:80;
server_name myapp.com;
location / {
proxy_pass http://localhost:8081/;
}
}
Tas nozīmē, ka visi pieprasījumi vietnei myapp.com 80. portā tiks novirzīti uz 8081. portu.
Papildu iestatījumi
Papildus proxy_pass direktīvai ir vairākas citas direktīvas, kuras varat izmantot uzlabotai iestatīšanai.
- proxy_set_header — ļauj iestatīt galveni, kas jānosūta uz fona lietojumprogrammu. Piemēram, skatiet šādu konfigurāciju:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Varat iestatīt nepieciešamās starpniekservera galvenes, lai tās tiktu nodotas lietojumprogrammai, norādīt pieprasījuma IP un attālo adresi un pēc tam izvadīt pareizo saturu pieprasītājai vietnei.
- starpniekservera taimauts — ļauj iestatīt taimauta vērtību starpniekservera pieprasījumu nosūtīšanai un saņemšanai. Piemēram:
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
- proxy_buffers — tas ļauj Nginx īslaicīgi aizturēt starpniekservera atbildi un nosūtīt to pieprasījuma iesniedzējam serverim tikai pēc tam, kad starpniekserveris ir beidzis atbildēt. Piemēram:
proxy_buffers 32 4k;
Ja jūsu lietojumprogramma sūta lielu skaitu failu, iespējams, vēlēsities atspējot proxy_buffers:
proxy_buffering off;
Kā redzat, Nginx ir reversais starpniekserveris, kam ir daudz lietojumu. Lielākais pluss ir tas, ka tas ir vienkārši konfigurējams, viegli lietojams un joprojām ļauj mērogot sarežģītākos scenārijos. Lai iegūtu sīkāku informāciju, varat skatīt Nginx starpniekservera moduļa dokumentāciju (vietnē https://nginx.org/en/docs/http/ngx_http_proxy_module.html) vai konfigurācijas piemērus (vietnē https://www .nginx.com/resources/wiki /sākt/tēmas/piemēri/pilns/).
Ceru, ka jums veiksies.