Rumah Operasi dan penyelenggaraan Nginx Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

May 18, 2023 pm 05:10 PM
nginx tomcat

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模块
Salin selepas log masuk

akan melaporkan ralat perpustakaan pcre yang hilang, Seperti yang ditunjukkan dalam gambar:

Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

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:

Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

Langkah 3: Pasang pcre pada linux

#tar zxvf pcre-8.10.tar.gz //解压

cd pcre-8.10

./configure

make && make install//编译并安装
Salin selepas log masuk

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服务器传 
    } 
    
  }  
 
}
Salin selepas log masuk

Langkah 2: Masuk Buat halaman statik index.html baharu di bawah webapps/root di bawah tomcat, seperti yang ditunjukkan dalam rajah:

Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

Langkah 3: Mulakan perkhidmatan nginx

#sbin/nginx Seperti yang ditunjukkan dalam gambar:

Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

Langkah 4: Akses halaman kami boleh memaparkan kandungan biasa, seperti yang ditunjukkan dalam gambar:

Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

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:


Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

2. Ujian tomcat memproses halaman statik Prestasi

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 :


Bagaimana Nginx dan Tomcat mencapai pemisahan dinamik dan statik serta pengimbangan beban

Untuk pemprosesan fail statik yang sama, prestasi statik nginx adalah lebih baik daripada tomcat. nginx boleh meminta 5388 kali sesaat, manakala tomcat hanya meminta 2609 kali.

Ringkasan: Dalam fail konfigurasi nginx, kami menyerahkan konfigurasi statik kepada nginx untuk diproses dan menyerahkan permintaan dinamik kepada tomcat, yang meningkatkan prestasi.

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 &#39;$remote_addr - $remote_user [$time_local] "$request" &#39; 
           &#39;$status $body_bytes_sent "$http_referer" &#39; 
           &#39;"$http_user_agent" "$http_x_forwarded_for"&#39;; 
 
  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服务器传 
    } 
    
  }  
 
}
Salin selepas log masuk

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 1

3)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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara memeriksa sama ada nginx dimulakan Cara memeriksa sama ada nginx dimulakan Apr 14, 2025 pm 01:03 PM

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 pelayan awan di nginx Cara mengkonfigurasi nama domain pelayan awan di nginx Apr 14, 2025 pm 12:18 PM

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.

Cara memulakan pelayan nginx Cara memulakan pelayan nginx Apr 14, 2025 pm 12:27 PM

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

Cara memulakan nginx di linux Cara memulakan nginx di linux Apr 14, 2025 pm 12:51 PM

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.

Bagaimana untuk memeriksa sama ada Nginx dimulakan? Bagaimana untuk memeriksa sama ada Nginx dimulakan? Apr 14, 2025 pm 12:48 PM

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.

Cara Mengkonfigurasi Nginx di Windows Cara Mengkonfigurasi Nginx di Windows Apr 14, 2025 pm 12:57 PM

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.

Cara menyelesaikan nginx403 Cara menyelesaikan nginx403 Apr 14, 2025 am 10:33 AM

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.

Cara memeriksa versi nginx Cara memeriksa versi nginx Apr 14, 2025 am 11:57 AM

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.

See all articles