Rumah Operasi dan penyelenggaraan Nginx Cara menggunakan simulasi nginx untuk penggunaan biru-hijau

Cara menggunakan simulasi nginx untuk penggunaan biru-hijau

Jun 03, 2023 pm 12:31 PM
nginx

Pengaturan biru-hijau

Tumpuan penggunaan biru-hijau terletak pada ciri berikut

  • Versi biru dan hijau wujud pada masa yang sama

  • 2 Persekitaran larian sebenar adalah biru atau hijau, ia hanya boleh menjadi salah satu daripadanya, dikawal oleh suis

<.>
Analisis Kelebihan dan Kekurangan: Kelebihannya ialah kelajuan dan pengembaliannya. Dan kelemahannya juga jelas. Pemulihan pantas adalah mungkin kerana dua set persekitaran wujud pada masa yang sama, jadi kerumitan dan sumber yang diperlukan akan meningkat kerana terdapat dua set persekitaran.

Walaupun kelajuan telah dipertingkatkan, dalam proses pelaksanaan, kawalan suis, tidak kira seberapa pantas kelajuan pensuisan, masih tidak dapat mencapai pensuisan yang lancar sepenuhnya tanpa menggabungkan teknologi lain.

Simulasikan penggunaan biru-hijau

Seterusnya, kami menggunakan huluan nginx untuk mensimulasikan senario penggunaan biru-hijau sahaja. Senario khusus adalah seperti berikut Versi biru sedang aktif Dengan melaraskan tetapan nginx, versi hijau ditetapkan sebagai versi yang sedang aktif.

Cara menggunakan simulasi nginx untuk penggunaan biru-hijau

Persediaan lebih awal

Mulakan dua perkhidmatan pada dua port 7001/7002 lebih awal untuk memaparkan maklumat yang berbeza mudah. ​​Saya menggunakan puting beliung untuk membuat imej Parameter berbeza yang diluluskan semasa memulakan bekas docker digunakan untuk memaparkan perbezaan dalam perkhidmatan.

docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "hello blue/green service: v1 in 7001"
docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "hello blue/green service: v2 in 7002"
Salin selepas log masuk

Log pelaksanaan

[root@kong ~]# docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "hello blue/green service: v1 in 7001"
70c74dc8e43d5635983f7240deb63a3fc0599d5474454c3bc5197aa5c0017348
[root@kong ~]# docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "hello blue/green service: v2 in 7002"
6c5c2ea322d4ac17b90feefb96e3194ec8adecedaa4c944419316a2e4bf07117
[root@kong ~]# curl http://192.168.163.117:7001
hello, service :hello blue/green service: v1 in 7001
[root@kong ~]# curl http://192.168.163.117:7002
hello, service :hello blue/green service: v2 in 7002
[root@kong ~]#
Salin selepas log masuk

Mulakan nginx

[root@kong ~]# docker run -p 9080:80 --name nginx-blue-green -d nginx
d3b7098c44890c15918dc47616b67e5e0eb0da7a443eac266dbf26d55049216a
[root@kong ~]# docker ps |grep nginx-blue-green
d3b7098c4489    nginx           "nginx -g &#39;daemon ..."  10 seconds ago    up 9 seconds    0.0.0.0:9080->80/tcp   nginx-blue-green
[root@kong ~]#
Salin selepas log masuk

coretan kod nginx<🎜 🎜> Sediakan coretan kod nginx berikut dan tambahkannya pada /etc/nginx/conf.d/default.conf of nginx Kaedah simulasi adalah sangat mudah untuk menunjukkan bahawa trafik adalah sifar dalam nginx). Pada mulanya, 100% trafik telah dihantar ke versi biru.

http {
upstream nginx_blug_green {
  server 192.168.163.117:7001 weight=100;
  server 192.168.163.117:7002 down;
}
server {
  listen    80;
  server_name www.liumiao.cn 192.168.163.117;
  location / {
    proxy_pass http://nginx_blug_green;
  }
}
Salin selepas log masuk

Cara mengubah suai default.conf

Anda boleh mencapai kesan dengan memasang vim dalam bekas, anda juga boleh mengubah suainya secara setempat dan menghantarnya melalui cp docker , atau secara langsung sed Pengubahsuaian boleh dilakukan. Jika anda memasang vim dalam bekas, gunakan kaedah berikut

[root@kong ~]# docker exec -it nginx-lb sh
# apt-get update
...省略
# apt-get install vim
...省略
Salin selepas log masuk

Sebelum pengubahsuaian

# cat default.conf
server {
  listen    80;
  server_name localhost;
  #charset koi8-r;
  #access_log /var/log/nginx/host.access.log main;
  location / {
    root  /usr/share/nginx/html;
    index index.html index.htm;
  }
  #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  /usr/share/nginx/html;
  }
  # proxy the php scripts to apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  #  proxy_pass  http://127.0.0.1;
  #}
  # pass the php scripts to fastcgi server listening on 127.0.0.1:9000
  #
  #location ~ \.php$ {
  #  root      html;
  #  fastcgi_pass  127.0.0.1:9000;
  #  fastcgi_index index.php;
  #  fastcgi_param script_filename /scripts$fastcgi_script_name;
  #  include    fastcgi_params;
  #}
  # deny access to .htaccess files, if apache&#39;s document root
  # concurs with nginx&#39;s one
  #
  #location ~ /\.ht {
  #  deny all;
  #}
}
#
Salin selepas log masuk
Selepas pengubahsuaian

# cat default.conf
upstream nginx_blug_green {
  server 192.168.163.117:7001 weight=100;
  server 192.168.163.117:7002 down;
}
server {
  listen    80;
  server_name www.liumiao.cn 192.168.163.117;
  #charset koi8-r;
  #access_log /var/log/nginx/host.access.log main;
  location / {
    #root  /usr/share/nginx/html;
    #index index.html index.htm;
    proxy_pass http://nginx_blug_green;
  }
  #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  /usr/share/nginx/html;
  }
  # proxy the php scripts to apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  #  proxy_pass  http://127.0.0.1;
  #}
  # pass the php scripts to fastcgi server listening on 127.0.0.1:9000
  #
  #location ~ \.php$ {
  #  root      html;
  #  fastcgi_pass  127.0.0.1:9000;
  #  fastcgi_index index.php;
  #  fastcgi_param script_filename /scripts$fastcgi_script_name;
  #  include    fastcgi_params;
  #}
  # deny access to .htaccess files, if apache&#39;s document root
  # concurs with nginx&#39;s one
  #
  #location ~ /\.ht {
  #  deny all;
  #}
}
#
Salin selepas log masuk
Muat semula tetapan nginx

# nginx -s reload
2018/05/28 04:39:47 [notice] 321#321: signal process started
#
Salin selepas log masuk
Sahkan keputusan

Semua output 10 panggilan adalah v1 dalam 7001

[ root@kong ~]# cnt=0; manakala [ $cnt -lt 10 ]

> hello perkhidmatan biru/hijau: v1 dalam 7001
hello, perkhidmatan :hello biru/hijau perkhidmatan: v1 dalam 7001

hello, perkhidmatan :hello biru/hijau perkhidmatan: v1 dalam 7001
hello, perkhidmatan : hello biru /green service: v1 in 7001
hello, service :hello blue/green service: v1 in 7001
hello, service :hello blue/green service: v1 in 7001
hello, service :hello blue /green perkhidmatan: v1 dalam 7001
hello, perkhidmatan :hello biru/hijau perkhidmatan: v1 dalam 7001
hello, perkhidmatan :hello biru/hijau perkhidmatan: v1 dalam 7001
hello, perkhidmatan :hello biru/hijau perkhidmatan: v1 pada tahun 7001
[root@kong ~]#



Penyerahan biru-hijau: tukar kepada versi hijau


dengan melaraskan berat default.conf, dan kemudian laksanakan muat semula nginx -s Anda boleh bertukar secara dinamik kepada versi hijau tanpa menghentikan perkhidmatan nginx Sasaran akan mengeluarkan semua trafik ke v2 pada 7002

Ubah suai kaedah .conf .

hanya perlu melaraskan berat pelayan di hulu seperti berikut:

upstream nginx_blug_green {
  server 192.168.163.117:7001 down;
  server 192.168.163.117:7002 weight=100;
}
Salin selepas log masuk

Muat semula tetapan nginx

# nginx -s reload
2018/05/28 05:01:28 [notice] 330#330: signal process started
#
Salin selepas log masuk

Sahkan keputusan

[root@kong ~]# cnt=0; v2 pada 7002

hello, perkhidmatan :hello biru/hijau perkhidmatan: v2 pada 7002

hello, perkhidmatan :hello biru/hijau perkhidmatan: v2 dalam 7002hello, perkhidmatan : hello biru/hijau perkhidmatan: v2 dalam 7002hello, perkhidmatan :hello blue/green service: v2 in 7002

hello, service :hello blue/green service: v2 in 7002
hello, service :hello blue /green service: v2 in 7002

hello, perkhidmatan :hello biru/hijau perkhidmatan: v2 dalam 7002
hello, perkhidmatan :hello biru/hijau perkhidmatan: v2 dalam 7002
hello, perkhidmatan :hello biru/hijau perkhidmatan: v2 pada 7002
[root@kong ~]#

Atas ialah kandungan terperinci Cara menggunakan simulasi nginx untuk penggunaan biru-hijau. 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.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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 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.

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 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.

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 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 menyelesaikan ralat nginx304 Cara menyelesaikan ralat nginx304 Apr 14, 2025 pm 12:45 PM

Jawab kepada Soalan: 304 Tidak diubahsuai ralat menunjukkan bahawa penyemak imbas telah cache versi sumber terkini permintaan klien. Penyelesaian: 1. Kosongkan cache penyemak imbas; 2. Lumpuhkan cache penyemak imbas; 3. Konfigurasi nginx untuk membolehkan cache pelanggan; 4. Periksa keizinan fail; 5. Semak fail hash; 6. Lumpuhkan CDN atau cache proksi terbalik; 7. Mulakan semula nginx.

Cara menyelesaikan ralat nginx403 Cara menyelesaikan ralat nginx403 Apr 14, 2025 pm 12:54 PM

Pelayan tidak mempunyai kebenaran untuk mengakses sumber yang diminta, mengakibatkan ralat NGINX 403. Penyelesaian termasuk: Periksa keizinan fail. Semak konfigurasi .htaccess. Semak konfigurasi Nginx. Konfigurasikan keizinan Selinux. Semak peraturan firewall. Menyelesaikan masalah lain seperti masalah penyemak imbas, kegagalan pelayan, atau kesilapan lain yang mungkin.

See all articles