Rumah > Operasi dan penyelenggaraan > Nginx > Bagaimana saya mengkonfigurasi nginx sebagai pelayan proksi terbalik?

Bagaimana saya mengkonfigurasi nginx sebagai pelayan proksi terbalik?

百草
Lepaskan: 2025-03-14 16:16:35
asal
174 orang telah melayarinya

Bagaimana saya mengkonfigurasi nginx sebagai pelayan proksi terbalik?

Untuk mengkonfigurasi Nginx sebagai pelayan proksi terbalik, anda perlu menyediakan Nginx untuk mengemukakan permintaan klien ke pelayan backend. Berikut adalah panduan langkah demi langkah untuk mencapai matlamat ini:

  1. Pasang Nginx : Jika Nginx belum dipasang pada sistem anda, pasangkannya menggunakan pengurus pakej yang sesuai untuk sistem operasi anda. Sebagai contoh, di Ubuntu, anda boleh menggunakan arahan berikut:

     <code>sudo apt-get update sudo apt-get install nginx</code>
    Salin selepas log masuk
  2. Edit fail konfigurasi nginx : Fail konfigurasi lalai untuk nginx pada kebanyakan sistem terletak di /etc/nginx/nginx.conf atau dalam direktori /etc/nginx/sites-available/ . Anda perlu membuat atau mengedit fail konfigurasi untuk menyediakan proksi terbalik.
  3. Sediakan proksi terbalik : Dalam fail konfigurasi, tentukan blok pelayan yang bertindak sebagai proksi terbalik. Berikut adalah contoh konfigurasi yang memohon permintaan dari example.com ke pelayan backend yang berjalan pada localhost:8080 :

     <code>http { server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }</code>
    Salin selepas log masuk
    • proxy_pass : Menentukan alamat pelayan backend.
    • proxy_set_header : Menetapkan tajuk untuk permintaan proksi untuk memastikan pelayan backend menerima maklumat yang tepat mengenai permintaan asal.
  4. Uji dan mulakan semula nginx : Setelah membuat perubahan pada fail konfigurasi, sangat penting untuk menguji konfigurasi untuk kesilapan sintaks:

     <code>sudo nginx -t</code>
    Salin selepas log masuk

    Jika ujian berjaya, mulakan semula nginx untuk memohon konfigurasi baru:

     <code>sudo systemctl restart nginx</code>
    Salin selepas log masuk

Dengan mengikuti langkah -langkah ini, Nginx akan bertindak sebagai proksi terbalik, permintaan penghantaran ke pelayan backend yang ditentukan.

Apakah faedah menggunakan nginx sebagai proksi terbalik?

Menggunakan Nginx sebagai proksi terbalik menawarkan beberapa faedah:

  1. Load Balancing : Nginx boleh mengedarkan trafik masuk ke pelbagai pelayan backend, meningkatkan prestasi dan kebolehpercayaan. Ini amat berguna untuk aplikasi trafik tinggi.
  2. Keselamatan : Dengan bertindak sebagai perantara, nginx dapat membantu menutup kewujudan dan ciri -ciri pelayan backend, meningkatkan keselamatan. Ia juga boleh menggunakan penyulitan SSL/TLS untuk mengamankan data yang dihantar antara pelanggan dan pelayan.
  3. Pengoptimuman Prestasi : Nginx boleh cache kandungan dan memampatkan respons, mengurangkan beban pelayan dan meningkatkan masa tindak balas. Ia juga mengendalikan kandungan statik dengan lebih cekap daripada banyak pelayan aplikasi.
  4. Skalabiliti : NGINX membantu dalam aplikasi skala dengan membolehkan anda menambah atau mengeluarkan pelayan backend tanpa menjejaskan perkhidmatan front-end. Ini menjadikannya lebih mudah untuk menguruskan pertumbuhan dan penyelenggaraan.
  5. Ketersediaan Tinggi : Dengan permintaan penghalaan kepada pelayan backend yang sihat dan menguruskan failover, Nginx dapat memastikan ketersediaan perkhidmatan anda yang lebih tinggi.
  6. Fleksibiliti : NGINX menyokong banyak protokol dan boleh dikonfigurasikan untuk pelbagai kes penggunaan, seperti Proxying Websocket, Streaming, dan banyak lagi.

Bagaimanakah saya boleh mengoptimumkan prestasi nginx untuk persediaan proksi terbalik?

Untuk mengoptimumkan prestasi nginx dalam persediaan proksi terbalik, pertimbangkan strategi berikut:

  1. Dayakan caching : Gunakan keupayaan caching Nginx untuk menyimpan kandungan yang sering diakses. Ini dapat mengurangkan beban pada pelayan backend dan meningkatkan masa tindak balas.

     <code>proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; proxy_cache my_cache;</code>
    Salin selepas log masuk
  2. Proses dan Sambungan Pekerja Tune : Laraskan bilangan proses dan sambungan pekerja untuk memadankan keupayaan dan beban pelayan anda.

     <code>worker_processes auto; events { worker_connections 1024; }</code>
    Salin selepas log masuk
  3. Gunakan pemampatan GZIP : Dayakan GZIP untuk memampatkan tindak balas, mengurangkan penggunaan jalur lebar dan meningkatkan masa beban halaman.

     <code>gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml rss text/javascript;</code>
    Salin selepas log masuk
  4. Mengoptimumkan Buffering : Konfigurasi saiz penampan untuk mengendalikan permintaan dan respons yang besar dengan lebih cekap.

     <code>proxy_buffers 16 16k; proxy_buffer_size 32k;</code>
    Salin selepas log masuk
  5. Melaksanakan penyatuan sambungan : Gunakan sambungan Keepalive untuk mengurangkan overhead untuk mewujudkan sambungan baru.

     <code>keepalive_timeout 65; keepalive_requests 100;</code>
    Salin selepas log masuk
  6. Hadkan Penggunaan Sumber : Gunakan ciri-ciri pembatasan sumber Nginx untuk mencegah penyalahgunaan dan memastikan penggunaan sumber pelayan yang adil.

     <code>limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10;</code>
    Salin selepas log masuk

Dengan melaksanakan pengoptimuman ini, anda dapat meningkatkan prestasi persediaan proksi terbalik nginx anda.

Apakah langkah -langkah keselamatan yang harus saya laksanakan ketika mengkonfigurasi Nginx sebagai proksi terbalik?

Melaksanakan langkah -langkah keselamatan adalah penting apabila mengkonfigurasi nginx sebagai proksi terbalik. Pertimbangkan amalan berikut:

  1. Penyulitan SSL/TLS : Dayakan HTTPS dengan mengkonfigurasi sijil SSL/TLS untuk mendapatkan data dalam transit. Gunakan alat seperti Let's Enrypt untuk sijil percuma.

     <code>server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; }</code>
    Salin selepas log masuk
  2. HTTP Keselamatan Pengangkutan Ketat (HSTS) : Menguatkuasakan sambungan HTTPS untuk mencegah serangan penurunan protokol.

     <code>add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;</code>
    Salin selepas log masuk
  3. Mengehadkan Kadar : Melindungi daripada serangan kekerasan dan DDO dengan mengehadkan kadar permintaan dari alamat IP individu.

     <code>limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; limit_req zone=one burst=5;</code>
    Salin selepas log masuk
  4. Tajuk Keselamatan : Tambah tajuk untuk meningkatkan keselamatan, seperti Dasar Keselamatan Kandungan (CSP), X-Frame-Options, dan X-XSS-perlindungan.

     <code>add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';";</code>
    Salin selepas log masuk
  5. Lumpuhkan Token Pelayan : Sembunyikan maklumat versi Nginx untuk mengurangkan kebocoran maklumat.

     <code>server_tokens off;</code>
    Salin selepas log masuk
  6. Kawalan Akses : Hadkan akses ke bahagian tertentu pelayan anda berdasarkan alamat IP atau kriteria lain.

     <code>location /admin { allow 192.168.1.0/24; deny all; }</code>
    Salin selepas log masuk
  7. Kemas kini tetap : Pastikan Nginx dan semua perisian yang berkaitan terkini untuk melindungi daripada kelemahan yang diketahui.

Dengan mengikuti amalan keselamatan ini, anda dapat meningkatkan keselamatan konfigurasi proksi terbalik NGINX anda.

Atas ialah kandungan terperinci Bagaimana saya mengkonfigurasi nginx sebagai pelayan proksi terbalik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan