


Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban
1. Pengenalan kepada nginx:
nginx ialah pelayan proksi http dan terbalik berprestasi tinggi Ia mempunyai kestabilan tinggi dan menyokong penggunaan panas dan pengembangan modul yang mudah. Apabila menghadapi puncak akses, atau seseorang secara berniat jahat memulakan sambungan perlahan, ia juga berkemungkinan menyebabkan memori fizikal pelayan menjadi letih dan kerap bertukar, mengakibatkan kehilangan respons Pelayan hanya boleh dimulakan semula teknologi peruntukan untuk memproses fail statik dan pecutan proksi terbalik tanpa Cache mencapai pengimbangan beban dan toleransi kesalahan, dan boleh menahan pemprosesan serentak tinggi dalam situasi capaian serentak tinggi sedemikian.
2. pemasangan dan konfigurasi nginx
Langkah 1: Muat turun pakej pemasangan nginx
Langkah 2: Pasang nginx pada linux
#tar zxvf nginx-1.7.8.tar.gz //解压 #cd nginx-1.7.8 #./configure --with-http_stub_status_module --with-http_ssl_module//启动server状态页和https模块
akan melaporkan ralat perpustakaan pcre yang hilang, Seperti yang ditunjukkan dalam gambar:
Pada masa ini, mula-mula lakukan langkah ketiga untuk memasang pcre, dan kemudian laksanakannya dalam 3, dan itu sahaja
4 .make && make install //Kompil dan pasang
5 Uji sama ada konfigurasi pemasangan adalah betul di /usr/local/nginx
#/usr/local/. nginx/sbin/ nginx -t, seperti yang ditunjukkan dalam gambar:
Langkah 3: Pasang pcre pada linux
#tar zxvf pcre-8.10.tar.gz //解压 cd pcre-8.10 ./configure make && make install//编译并安装
Tiga . nginx + tomcat merealisasikan pemisahan dinamik dan statik
Pemisahan dinamik dan statik bermakna nginx mengendalikan halaman statik (halaman html) atau gambar yang diminta oleh pelanggan, dan tomcat mengendalikan halaman dinamik (halaman jsp) yang diminta oleh pelanggan, kerana nginx Kecekapan memproses halaman statik adalah lebih tinggi daripada tomcat.
Langkah 1: Kita perlu mengkonfigurasi fail nginx
#vi /usr/local/nginx/conf/nginx.conf
#user nobody; worker_processes 1; error_log logs/error.log; pid logs/nginx.pid; events { use epoll; worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; keepalive_timeout 65; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; server { listen 80 default; server_name localhost; <span style="color:#ff0000;"> location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ //由nginx处理静态页面</span> { root /usr/tomcat/apache-tomcat-8081/webapps/root; expires 30d; //缓存到客户端30天 } error_page 404 /404.html; #redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } <span style="color:#ff0000;"> location ~ \.(jsp|do)$ {//所有jsp的动态请求都交给tomcat处理 </span> <span style="color:#ff0000;"> proxy_pass http://192.168.74.129:8081; //来自jsp或者do的后缀的请求交给tomcat处理</span> proxy_redirect off; proxy_set_header host $host; //后端的web服务器可以通过x-forwarded-for获取用户真实ip proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; client_max_body_size 10m; //允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; //缓冲区代理缓冲用户端请求的最大字节数 proxy_connect_timeout 90; //nginx跟后端服务器连接超时时间 proxy_read_timeout 90; //连接成功后,后端服务器响应时间 proxy_buffer_size 4k; //设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 6 32k; //proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k;//高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; //设定缓存文件夹大小,大于这个值,将从upstream服务器传 } } }
Langkah 2: Masuk Buat halaman statik index.html baharu di bawah webapps/root di bawah tomcat, seperti yang ditunjukkan dalam rajah:
Langkah 3: Mulakan perkhidmatan nginx
#sbin/nginx Seperti yang ditunjukkan dalam gambar:
Langkah 4: Akses halaman kami boleh memaparkan kandungan biasa, seperti yang ditunjukkan dalam gambar:
Langkah 5: Uji prestasi nginx dan tomcat dalam memproses halaman statik di bawah konkurensi tinggi?
Menggunakan arahan ujian tekanan laman web linux ab untuk menguji prestasi
1. Uji prestasi nginx dalam memproses halaman statik
ab -c 100 -n 1000<🎜. >
Ini bermakna memproses 100 permintaan pada masa yang sama dan menjalankan fail index.html 1000 kali, seperti yang ditunjukkan dalam rajah:4. nginx +tomcat load balancing dan fault tolerance
Untuk meningkatkan prestasi pelayan dan mengurangkan tekanan concurrency pada pelayan tunggal di bawah keadaan concurrency yang tinggi, kami mengguna pakai penempatan kluster, yang juga boleh menyelesaikan masalah mengelak Apabila pelayan tunggal ditutup dan perkhidmatan tidak dapat diakses, isu toleransi kesalahan ditangani. Langkah pertama: Kami telah menggunakan pelayan tomcat di sini selama dua hari, 192.168.74.129:8081 dan 192.168.74.129:8082 Langkah kedua: nginx berfungsi sebagai pelayan proksi dan permintaan pelanggan bahagian pelayan, pengimbangan beban digunakan untuk mengendalikannya, supaya permintaan perkhidmatan pelanggan boleh diagihkan secara sama rata kepada pelayan setiap hari, sekali gus mengurangkan tekanan pada bahagian pelayan. Konfigurasikan fail nginx.conf di bawah nginx. #vi /usr/local/nginx/conf/nginx.conf#user nobody; worker_processes 1; error_log logs/error.log; pid logs/nginx.pid; events { use epoll; worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; keepalive_timeout 65; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; <span style="color:#ff0000;">upstream localhost_server { ip_hash; server 192.168.74.129:8081; server 192.168.74.129:8082; }</span> server { listen 80 default; server_name localhost; <span style="color:#ff0000;"> location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ //由nginx处理静态页面</span> { root /usr/tomcat/apache-tomcat-8081/webapps/root; expires 30d; //缓存到客户端30天 } error_page 404 /404.html; #redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } <span style="color:#ff0000;">location ~ \.(jsp|do)$ {//所有jsp的动态请求都交给tomcat处理 </span> <span style="color:#ff0000;">proxy_pass http://localhost_server; //来自jsp或者do的后缀的请求交给tomcat处理</span> proxy_redirect off; proxy_set_header host $host; //后端的web服务器可以通过x-forwarded-for获取用户真实ip proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; client_max_body_size 10m; //允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; //缓冲区代理缓冲用户端请求的最大字节数 proxy_connect_timeout 90; //nginx跟后端服务器连接超时时间 proxy_read_timeout 90; //连接成功后,后端服务器响应时间 proxy_buffer_size 4k; //设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 6 32k; //proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k;//高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; //设定缓存文件夹大小,大于这个值,将从upstream服务器传 } } }
Penjelasan:
1 pelayan IP (nama domain) dan port juga boleh diikuti oleh parameter 1) berat: Tetapkan berat pemajuan pelayan Nilai lalai ialah 1. 2) max_fails: Ia digunakan bersama fail_timeout Ini bermakna dalam tempoh masa fail_timeout, jika bilangan kegagalan pemajuan pelayan melebihi nilai yang ditetapkan oleh max_fails, pelayan tidak akan tersedia nilai max_fails ialah 13)fail_timeout: Menunjukkan berapa kali pemajuan gagal dalam tempoh masa ini sebelum pelayan dianggap tidak tersedia.
4)bawah: Menunjukkan bahawa pelayan ini tidak boleh digunakan.
5) sandaran: Menunjukkan bahawa tetapan ip_hash tidak sah untuk pelayan ini Permintaan akan dimajukan kepada pelayan hanya selepas semua pelayan bukan sandaran gagal.
2. Tetapan ip_hash berada dalam pelayan kluster Jika permintaan klien yang sama dimajukan ke berbilang pelayan, setiap pelayan mungkin menyimpan maklumat yang sama, yang akan menyebabkan pembaziran sumber Tetapan ip_hash digunakan Apabila klien yang sama meminta maklumat yang sama untuk kali kedua, ia akan dimajukan kepada pelayan yang meminta kali pertama. Tetapi ip_hash tidak boleh digunakan bersama dengan berat.
Atas ialah kandungan terperinci Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Cara mengkonfigurasi nama domain Nginx pada pelayan awan: Buat rekod yang menunjuk ke alamat IP awam pelayan awan. Tambah blok hos maya dalam fail konfigurasi Nginx, menyatakan port pendengaran, nama domain, dan direktori akar laman web. Mulakan semula nginx untuk memohon perubahan. Akses konfigurasi ujian nama domain. Nota Lain: Pasang sijil SSL untuk membolehkan HTTPS, pastikan firewall membenarkan trafik port 80, dan tunggu resolusi DNS berkuatkuasa.

Memulakan pelayan Nginx memerlukan langkah-langkah yang berbeza mengikut sistem operasi yang berbeza: Sistem Linux/Unix: Pasang pakej Nginx (contohnya, menggunakan apt-get atau yum). Gunakan SystemCTL untuk memulakan perkhidmatan Nginx (contohnya, SUDO SystemCTL Mula Nginx). Sistem Windows: Muat turun dan pasang fail binari Windows. Mula Nginx menggunakan nginx.exe executable (contohnya, nginx.exe -c conf \ nginx.conf). Tidak kira sistem operasi yang anda gunakan, anda boleh mengakses IP pelayan

Langkah -langkah untuk memulakan Nginx di Linux: Periksa sama ada Nginx dipasang. Gunakan SistemCTL Mula Nginx untuk memulakan perkhidmatan Nginx. Gunakan SistemCTL Dayakan NGINX untuk membolehkan permulaan automatik Nginx pada permulaan sistem. Gunakan Status SistemCTL Nginx untuk mengesahkan bahawa permulaan berjaya. Lawati http: // localhost dalam pelayar web untuk melihat halaman selamat datang lalai.

Di Linux, gunakan arahan berikut untuk memeriksa sama ada nginx dimulakan: Hakim status SistemCTL Nginx berdasarkan output arahan: Jika "Aktif: Aktif (Running)" dipaparkan, Nginx dimulakan. Jika "aktif: tidak aktif (mati)" dipaparkan, nginx dihentikan.

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

Bagaimana untuk memperbaiki kesilapan dilarang nginx 403? Semak keizinan fail atau direktori; 2. Semak .htaccess File; 3. Semak fail konfigurasi nginx; 4. Mulakan semula nginx. Penyebab lain yang mungkin termasuk peraturan firewall, tetapan selinux, atau isu aplikasi.

Kaedah yang boleh menanyakan versi nginx adalah: gunakan perintah nginx -v; Lihat arahan versi dalam fail nginx.conf; Buka halaman ralat Nginx dan lihat tajuk halaman.
