Ghid complet pentru construirea unui proxy invers Nginx securizat
Crearea unui proxy invers sigur, fiabil și scalabil este crucială pentru companiile și profesioniștii IT care gestionează site-uri web cu trafic intens sau aplicații complexe. Nginx, un server web open-source și un proxy invers, este o soluție puternică pentru rutarea, optimizarea și securizarea traficului către serviciile backend. În acest ghid, vom parcurge procesul de configurare a unui proxy invers robust folosind Nginx pe Ubuntu 24.04, acoperind pași critici precum criptarea TLS, limitarea ratei și integrarea cu Cloudflare.
Dacă gestionați site-uri web la nivel de întreprindere, platforme de comerț electronic sau servere media, acest ghid vă va ajuta să îmbunătățiți performanța, să asigurați funcționarea continuă și să vă protejați infrastructura de vulnerabilități.
Ce este un proxy invers Nginx?
Un proxy invers Nginx acționează ca un server intermediar între clienți și serviciile backend. Acesta redirecționează cererile clienților către serverul backend corespunzător, optimizând distribuția încărcării, sporind securitatea și activând funcții precum caching, terminarea SSL și filtrarea traficului. Această configurație este utilă în special pentru găzduirea serverelor media, a aplicațiilor multi-site și a serviciilor în spatele firewall-urilor.
sbb-itb-59e1987
De ce ai nevoie de un proxy invers
Un proxy invers oferă mai multe beneficii cheie:
- Securitate sporităAscunde adresele IP ale serverelor backend și activează criptarea prin TLS/SSL.
- Echilibrarea sarciniiDistribuie uniform traficul pe mai multe servere backend.
- OptimizareReduce latența și îmbunătățește eficiența resurselor.
- scalabilitateFacilitează gestionarea scenariilor cu trafic intens.
- Ușurință în gestionareSimplifică configurarea mai multor servicii backend în spatele unui domeniu unificat.
În acest tutorial, vom demonstra cum să:
- Configurați Nginx ca proxy invers.
- Securizați-vă configurația cu certificatele Let's Encrypt TLS.
- Configurați optimizări avansate, cum ar fi limitarea ratei și redirecționarea cererilor.
- Integrați Cloudflare pentru a ocoli restricțiile de port ale furnizorului de servicii de internet.
Pasul 1: Instalarea Nginx și Certbot pe Ubuntu 24.04
Actualizați-vă sistemul
Înainte de a instala orice software, asigurați-vă că sistemul este actualizat:
actualizare sudo apt și upgrade sudo apt Instalați Nginx și Certbot
Folosește următoarele comenzi pentru a instala Nginx și Certbot cu pluginul Nginx:
sudo apt instalează nginx -y sudo apt instalează certbot python3-certbot-nginx -y Verificați instalarea
Confirmați că Nginx rulează:
sudo systemctl status nginx Pentru a testa accesul, determinați adresa IP a serverului:
IP-ul Accesați adresa IP într-un browser. Dacă reușiți, veți vedea pagina de bun venit implicită Nginx.
Pasul 2: Configurarea regulilor firewall-ului
Activați Firewall-ul necomplicat (UFW)
UFW vă permite să gestionați cu ușurință regulile firewall-ului:
sudo ufw allow 'Nginx Full' sudo ufw allow OpenSSH sudo ufw enable Verificați starea firewall-ului pentru a vă asigura că porturile corecte sunt deschise:
stare sudo ufw Pasul 3: Configurarea proxy-ului Nginx
Creați fișiere de configurare personalizate
Pentru o flexibilitate și o securitate sporite, utilizați fișiere snippet pentru a stoca configurații specifice. Creați următoarele fișiere:
- Anteturi de securitate:
Definiți anteturile de securitate pentru a îmbunătăți protecția:sudo nano /etc/nginx/snippets/security-headers.confadd_header Opțiuni-X-Frame "SAMEORIGIN"; add_header Opțiuni-Type-Content-X "nosniff"; add_header Protecție-X-XSS "1; mod=block"; - Setări proxy:
Optimizați fluxurile lungi și preveniți răspunsurile lente:sudo nano /etc/nginx/snippets/proxy.confproxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; - Limite de tarif:
Atenuarea solicitărilor excesive:sudo nano /etc/nginx/snippets/rate-limit.conflimit_req_zone $binary_remote_addr zone=mylimit:10m rată=10r/s;
Includeți fragmente în configurația principală
Editați configurația principală Nginx:
sudo nano /etc/nginx/nginx.conf Adăugați următoarele sub http bloc:
include /etc/nginx/snippets/*.conf; Reporniți Nginx pentru a aplica modificările:
sudo systemctl reîncărcare nginx Pasul 4: Configurarea proxy-ului invers pentru un serviciu backend
Creați o gazdă virtuală
Creați un fișier de configurare pentru serviciul backend:
sudo nano /etc/nginx/sites-available/jellyfin Exemplu de configurație pentru un server media Jellyfin:
server { ascultă 80; nume_server jelly.domeniul_dumneavoastră.com; locație / { proxy_pass http://10.10.0.112:8096; include /etc/nginx/snippets/proxy.conf; } } Activați site-ul creând o legătură simbolică:
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ Testează și reîncarcă Nginx:
sudo nginx -t sudo systemctl reload nginx Pasul 5: Securizarea domeniului dvs. cu Let's Encrypt TLS
Pentru a vă securiza domeniul, utilizați Let's Encrypt pentru a emite certificate gratuite:
sudo certbot --nginx -d jelly.yourdomain.com Certbot configurează automat SSL în fișierul site-ului Nginx. Pentru a vă asigura că certificatele sunt reînnoite automat, verificați dacă temporizatorul systemd este activ:
sudo systemctl cronometre de listă | grep certbot Pasul 6: Integrarea Cloudflare pentru securitate suplimentară și ocolirea porturilor ISP
Instalați Cloudflared
Cloudflared creează un tunel securizat pentru a direcționa traficul prin Cloudflare, ocolind restricțiile ISP-ului pe porturile 80 și 443:
- Descărcați
.debpachet de pe pagina GitHub a Cloudflare. - Instalați pachetul:
sudo dpkg -i cloudflared-version.deb
Configurați un tunel
Autentificați-vă cu contul dvs. Cloudflare:
autentificare tunel Cloudflared Creați un tunel nou:
tunel cloudflared creează tunelul-meu Editați fișierul de configurare Cloudflare:
sudo nano /etc/cloudflared/config.yml Exemplu de configurație:
tunel: fișierul-acreditărilor-tunelului-meu: /home/user/.cloudflared/tunnelul-meu.json ingress: - nume-gazdă: jelly.domeniul-dumneavoastră.com serviciu: http://localhost:8096 - serviciu: http_status:404 Porniți și activați serviciul de tunel:
sudo systemctl activează cloudflared sudo systemctl pornește cloudflared Recomandări cheie
- Proxy invers NginxEsențial pentru rutarea sigură a traficului și optimizarea serviciilor backend.
- Criptare TLSFolosește Let's Encrypt pentru a-ți securiza domeniile cu certificate SSL gratuite.
- Reguli de firewallDeschideți porturile necesare pentru HTTP (80), HTTPS (443) și SSH (22).
- Optimizare de securitateImplementați anteturi și limitarea ratei pentru a preveni atacurile.
- Integrare CloudflareFolosește tuneluri Cloudflared pentru găzduire sigură și prietenoasă cu furnizorii de servicii de internet.
- AutomatizareCronometrele Systemd asigură reînnoirea automată a certificatelor SSL.
Concluzie
Configurarea unui proxy invers Nginx securizat necesită atenție la detalii și o configurare atentă, dar recompensele merită efortul. Indiferent dacă găzduiți servere media precum Jellyfin sau gestionați aplicații enterprise, acest ghid vă oferă instrumentele și cunoștințele necesare pentru a construi un mediu extrem de sigur și eficient. Cu funcții precum TLS, tuneluri Cloudflare și optimizări avansate, infrastructura dvs. este pregătită pentru cerințele moderne.
Sursă: „Nu vă mai expuneți aplicațiile! Construiți un proxy invers Nginx securizat!” – KeepItTechie, YouTube, 19 august 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g
Utilizare: Încorporat pentru referință. Citate scurte folosite pentru comentarii/recenzie.
Postări de blog conexe
- Stăpânirea configurațiilor Nginx pentru performanță optimă a serverului web
- Stăpânirea NGINX Config: Cum Serverion deblochează succesul găzduirii web B2B
- NGINX Config Rewind: Serverion revigorează arta pierdută a reglajului cache proxy
- Frontiera de configurare NGINX uitată: scufundarea Serverion în FastCGI Microcaching