Cara menggunakan simulasi nginx untuk penggunaan biru-hijau
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.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"
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 ~]#
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 'daemon ..." 10 seconds ago up 9 seconds 0.0.0.0:9080->80/tcp nginx-blue-green [root@kong ~]#
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; } }
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 ...省略
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's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } #
# 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's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } #
# nginx -s reload 2018/05/28 04:39:47 [notice] 321#321: signal process started #
Semua output 10 panggilan adalah v1 dalam 7001
[ root@kong ~]# cnt=0; manakala [ $cnt -lt 10 ]
> hello perkhidmatan biru/hijau: v1 dalam 7001hello, perkhidmatan :hello biru/hijau perkhidmatan: v1 dalam 7001hello, 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; }
Muat semula tetapan nginx
# nginx -s reload 2018/05/28 05:01:28 [notice] 330#330: signal process started #
Sahkan keputusan
[root@kong ~]# cnt=0; v2 pada 7002
hello, perkhidmatan :hello biru/hijau perkhidmatan: v2 pada 7002hello, 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 7002hello, service :hello blue /green service: v2 in 7002hello, 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!

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.

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.

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.

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.

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

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.

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.

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.
