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:
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>
/etc/nginx/nginx.conf
atau dalam direktori /etc/nginx/sites-available/
. Anda perlu membuat atau mengedit fail konfigurasi untuk menyediakan proksi terbalik. 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>
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.Uji dan mulakan semula nginx : Setelah membuat perubahan pada fail konfigurasi, sangat penting untuk menguji konfigurasi untuk kesilapan sintaks:
<code>sudo nginx -t</code>
Jika ujian berjaya, mulakan semula nginx untuk memohon konfigurasi baru:
<code>sudo systemctl restart nginx</code>
Dengan mengikuti langkah -langkah ini, Nginx akan bertindak sebagai proksi terbalik, permintaan penghantaran ke pelayan backend yang ditentukan.
Menggunakan Nginx sebagai proksi terbalik menawarkan beberapa faedah:
Untuk mengoptimumkan prestasi nginx dalam persediaan proksi terbalik, pertimbangkan strategi berikut:
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>
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>
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>
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>
Melaksanakan penyatuan sambungan : Gunakan sambungan Keepalive untuk mengurangkan overhead untuk mewujudkan sambungan baru.
<code>keepalive_timeout 65; keepalive_requests 100;</code>
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>
Dengan melaksanakan pengoptimuman ini, anda dapat meningkatkan prestasi persediaan proksi terbalik nginx anda.
Melaksanakan langkah -langkah keselamatan adalah penting apabila mengkonfigurasi nginx sebagai proksi terbalik. Pertimbangkan amalan berikut:
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>
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>
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>
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>
Lumpuhkan Token Pelayan : Sembunyikan maklumat versi Nginx untuk mengurangkan kebocoran maklumat.
<code>server_tokens off;</code>
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>
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!