Bagaimana untuk mencapai pemisahan front-end dan back-end dalam pangkalan data penjanaan terbalik Nginx

WBOY
Lepaskan: 2023-06-10 12:01:44
asal
1555 orang telah melayarinya

Dengan perkembangan pesat teknologi Internet, idea pemisahan bahagian hadapan dan belakang semakin digunakan secara meluas oleh pembangun. Pemisahan bahagian hadapan dan bahagian belakang boleh memisahkan dan selari dengan pembangunan bahagian hadapan dan bahagian belakang, meningkatkan kecekapan pembangunan, mengurangkan kerumitan pembangunan, dan meningkatkan prestasi sistem dan kebolehskalaan.

Dalam seni bina di mana hujung hadapan dan belakang dipisahkan, hujung hadapan meminta data dari hujung belakang melalui antara muka, dan hujung belakang memproses data yang diminta dan kemudian mengembalikannya ke hujung hadapan. Dalam proses ini, Nginx boleh memainkan peranan dalam menghantar dan memajukan data melalui teknologi proksi terbalik. Artikel ini akan memperkenalkan cara untuk mencapai pemisahan bahagian hadapan dan belakang dalam pangkalan data penjanaan terbalik Nginx.

1. Pangkalan data proksi terbalik Nginx

Dalam seni bina pemisahan bahagian hadapan dan bahagian belakang, bahagian hadapan meminta data dari bahagian belakang melalui antara muka dan memproses data yang dikembalikan. Jika pangkalan data terdedah secara langsung kepada rangkaian awam, akan ada risiko keselamatan yang besar. Oleh itu, kita perlu menggunakan teknologi proksi terbalik untuk memproksi proses penghantaran data bagi memastikan keselamatan.

Dalam Nginx, pangkalan data proksi terbalik boleh dilaksanakan melalui konfigurasi berikut:

location /api/ {
    proxy_pass http://localhost:8080;
}
Salin selepas log masuk

Maksud konfigurasi ini ialah apabila bahagian hadapan menghantar permintaan ke laluan "/api/" , Nginx akan Permintaan dimajukan ke port tempatan 8080, dan data yang dikembalikan oleh bahagian belakang dimajukan semula ke bahagian hadapan. Dengan cara ini, keselamatan pangkalan data dapat dijamin.

2. Pengimbangan beban generasi terbalik Nginx

Dalam aplikasi sebenar, jika beban pada pelayan bahagian belakang tunggal terlalu besar, masa tindak balas pelayan akan menjadi perlahan atau ranap. Oleh itu, teknologi pengimbangan beban penjanaan terbalik Nginx perlu digunakan untuk mengimbangi beban pelayan bahagian belakang.

Konfigurasi pengimbangan beban Nginx adalah seperti berikut:

upstream backend {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name localhost;

    location /api/ {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
Salin selepas log masuk

Konfigurasi ini bermaksud memajukan permintaan kepada salah satu kluster pelayan bahagian belakang apabila salah satu pelayan sibuk atau menghadapi masalah . , bertukar secara automatik ke pelayan lain.

3. Cache penjanaan terbalik Nginx

Dalam seni bina yang bahagian hadapan dan belakang dipisahkan, bahagian hadapan perlu kerap menghantar permintaan ke bahagian belakang untuk mendapatkan data membaca semula daripada data pangkalan data, ia akan membuang banyak masa dan sumber. Pada masa ini, anda perlu menggunakan fungsi caching generasi terbalik Nginx untuk menyimpan data yang kerap digunakan untuk meningkatkan kelajuan dan prestasi tindak balas sistem.

Konfigurasi cache Nginx adalah seperti berikut:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
server {
    listen 80;
    server_name localhost;

    location /api/ {
        proxy_pass http://backend;
        proxy_cache my_cache;
        proxy_cache_valid 200 60m;
        proxy_cache_valid 404 1m;
        proxy_cache_bypass $http_pragma;
        proxy_cache_revalidate on;
        proxy_cache_min_uses 2;
        proxy_cache_lock on;
    }
}
Salin selepas log masuk

Maksud konfigurasi ini adalah untuk cache data dalam kawasan cache 10M Jika tiada permintaan untuk data cache dalam tempoh masa , cache akan luput dan dikosongkan. Pada masa yang sama, anda boleh menentukan masa cache bagi kod status yang berbeza melalui proxy_cache_valid, dan anda juga boleh mengawal kemas kini cache melalui proxy_cache_bypass.

4. HTTPS penjanaan terbalik Nginx

Dalam seni bina yang bahagian depan dan belakang dipisahkan, dengan mengambil kira keselamatan penghantaran data, HTTP perlu ditingkatkan kepada HTTPS. Dalam Nginx, anda boleh melaksanakan HTTPS proksi terbalik melalui konfigurasi berikut:

server {
    listen 443;
    server_name localhost;

    ssl on;
    ssl_certificate /etc/nginx/cert.pem;
    ssl_certificate_key /etc/nginx/key.pem;
    ssl_session_timeout 5m;

    location /api/ {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
Salin selepas log masuk

Maksud konfigurasi ini ialah mendengar port 443, mendayakan konfigurasi SSL dan mengkonfigurasi sijil dan kunci. Pada masa yang sama, apabila membuat proksi permintaan, anda perlu menetapkan pengepala yang berkaitan.

Ringkasan

Dalam seni bina pemisahan bahagian hadapan dan belakang, Nginx memainkan peranan yang sangat penting untuk merealisasikan penghantaran data yang selamat melalui teknologi proksi terbalik, pengimbangan beban, caching dan HTTPS berfungsi dan meningkatkan kebolehskalaan sistem. Nginx ialah pelayan proksi terbalik yang sangat fleksibel dan berkuasa yang boleh menyelesaikan pelbagai tugas dan senario aplikasi yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk mencapai pemisahan front-end dan back-end dalam pangkalan data penjanaan terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!