Persediaan:
192.168.16.128
192.168.16.129
Dua mesin maya. Pasang nginx
Pasang nginx
Kemas kini fail sumber yum:
rpm -ivh http://nginx.org/packages/centos/7/noarch/rpms/nginx-release-centos-7-0.el7.ngx.noarch.rpm wget -o /etc/yum.repos.d/centos-base.repo http://mirrors.aliyun.com/repo/centos-7.repo
Pasang nginx:
yum -y install nginx
Arahan operasi:
systemctl start nginx; #启动nginx systemctl stop nginx; #停止nginx
Apakah ketersediaan tinggi?
Ketersediaan tinggi (high availability) merupakan salah satu faktor yang perlu diambil kira dalam reka bentuk seni bina sistem teragih Ia biasanya merujuk kepada pengurangan masa apabila sistem tidak dapat menyediakan perkhidmatan melalui reka bentuk . Jika sistem sentiasa boleh menyediakan perkhidmatan, maka ketersediaan adalah 100%, tetapi terdapat keadaan yang tidak dijangka. Jadi kami hanya boleh cuba mengurangkan kegagalan perkhidmatan sebanyak mungkin.
Masalah selesai?
Dalam persekitaran pengeluaran, nginx sering digunakan sebagai proksi terbalik untuk menyediakan perkhidmatan luaran Walau bagaimanapun, nginx pasti akan menghadapi kegagalan suatu hari nanti, seperti masa henti pelayan. Apabila nginx turun, semua antara muka yang disediakan secara luaran akan menjadi tidak boleh diakses.
Walaupun kami tidak dapat menjamin bahawa pelayan tersedia 100%, kami mesti mencari cara untuk mengelakkan tragedi ini Hari ini kami menggunakan keepalived untuk mencapai ketersediaan nginx yang tinggi
.
Penyelesaian sandaran panas dwi-mesin
Penyelesaian ini ialah penyelesaian ketersediaan tinggi yang paling biasa di kalangan perusahaan tempatan sandaran panas dwi-mesin sebenarnya merujuk kepada a Satu pelayan menyediakan perkhidmatan, dan yang lain dalam keadaan siap sedia untuk perkhidmatan tertentu Apabila satu pelayan tidak tersedia, yang lain akan menggantikannya.
Apa itu keepalived?
Perisian keepalived pada asalnya direka untuk perisian pengimbangan beban LVS untuk mengurus dan memantau status setiap nod perkhidmatan dalam sistem kluster LVS Kemudian, vrrp (penghala maya) telah ditambahkan untuk mencapai ketersediaan yang tinggi . protokol redundansi, protokol redundansi penghala maya) fungsi. Oleh itu, selain dapat mengurus perisian LVS, keepalived juga boleh digunakan sebagai perisian penyelesaian ketersediaan tinggi untuk perkhidmatan lain (seperti: nginx, haproxy, mysql, dll.)
failover mekanisme
Pemindahan failover antara perkhidmatan ketersediaan tinggi yang kekal dilaksanakan melalui vrrp.
Apabila perkhidmatan keepalived berfungsi seperti biasa, nod induk akan terus menghantar mesej degupan jantung (berbilang hantar) ke nod sandaran untuk memberitahu nod sandaran bahawa ia masih hidup Apabila nod induk gagal, , ia tidak boleh menghantar mesej degupan jantung, dan nod siap sedia tidak dapat terus mengesan degupan jantung daripada nod induk, jadi ia memanggil program pengambilalihan sendiri untuk mengambil alih sumber IP dan perkhidmatan nod induk. Apabila nod induk utama pulih, nod sandaran akan mengeluarkan sumber IP dan perkhidmatan yang diambil alih apabila nod utama gagal, dan kembali kepada peranan sandaran asalnya.
Proses pelaksanaan
Pasang keepalived
Anda boleh memasangnya terus menggunakan yum, yang akan memasang dependencies secara automatik:
rreeeUbah suai fail konfigurasi hos (192.168.16.128)
Pemasangan Yum akan menghasilkan fail konfigurasi di bawah /etc/keepalived:
yum -y install keepalived
keepalived.conf:
vi keepalived.conf
Vip boleh dikonfigurasikan dalam virtual_ipaddress, dan perkhidmatan boleh diakses dalam talian melalui vip.
Ubah suai konfigurasi mesin sandaran (192.168.16.129). sh
Penjelasan: Skrip mesti dibenarkan, jika tidak, tiada kebenaran untuk mengakses Di sini kami mempunyai dua pelayan yang melaksanakan
Dalam persekitaran pengeluaran, kami mengakses perkhidmatan secara terus melalui VIP. Simulasikan kegagalan nginx: Ubah suai halaman html nginx yang diakses oleh kedua-dua pelayan secara lalai sebagai perbezaan. Lawatan pertama, akses melalui VIP, halaman memaparkan vip(virtual_ipaddress:192.168.16.130),
menunjukkan bahawa perkhidmatan semasa disediakan oleh pelayan utama.
Pada masa ini
pelayan utama melaksanakan arahan:#检测脚本 vrrp_script chk_http_port { script "/usr/local/src/check_nginx_pid.sh" #心跳执行的脚本,检测nginx是否启动 interval 2 #(检测脚本执行的间隔,单位是秒) weight 2 #权重 } #vrrp 实例定义部分 vrrp_instance vi_1 { state master # 指定keepalived的角色,master为主,backup为备 interface ens33 # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡 virtual_router_id 66 # 虚拟路由编号,主从要一直 priority 100 # 优先级,数值越大,获取处理请求的优先级越高 advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数) #授权访问 authentication { auth_type pass #设置验证类型和密码,master和backup必须使用相同的密码才能正常通信 auth_pass 1111 } track_script { chk_http_port #(调用检测脚本) } virtual_ipaddress { 192.168.16.130 # 定义虚拟ip(vip),可多设,每行一个 } }
) dan mendapati halaman itu masih memaparkan: 192.168.16.130
pada masa ini, yang ialah mula semula automatik dalam skrip. 192.168.16.128
, akses VIP di sini (192.168.16.128
) dan kini mendapati bahawa halaman memaparkan
akan gagal secara automatik. akhir persekitaran pengeluaran peringkat perusahaan Penyelesaian yang ada dibina. Terdapat banyak fungsi dalam 192.168.16.130
192.168.16.128
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan ketersediaan tinggi Nginx dalam persekitaran pengeluaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!