Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menggunakan golang dalam nginx
Dalam beberapa tahun kebelakangan ini, bahasa Golang telah digemari oleh pembangun kerana prestasi konkurensi yang tinggi, sintaks ringkas dan kelajuan pembangunan yang pantas. Walau bagaimanapun, dalam persekitaran pengeluaran sebenar, aplikasi Golang juga memerlukan pelayan yang cekap untuk menyokong operasi mereka. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk menggunakan aplikasi Golang.
1. Pengenalan kepada Nginx
Nginx ialah perisian pelayan web yang ringan dan berprestasi tinggi Ia adalah salah satu perisian pelayan web yang paling popular pada masa ini dan sangat sesuai untuk pengimbangan beban dan proksi terbalik . dan perkhidmatan berprestasi tinggi yang lain. Berbanding dengan Apache, Nginx mempunyai jejak memori yang lebih kecil, keupayaan anti-konkurensi yang lebih kuat dan prestasi yang lebih tinggi. Oleh itu, Nginx semakin digunakan dalam kluster perkhidmatan web beban tinggi.
2. Gambaran keseluruhan rancangan penggunaan Golang
Secara umumnya, penggunaan aplikasi Golang boleh dibahagikan kepada aspek berikut:
Seterusnya, kami akan memperkenalkan secara terperinci cara menggunakan Nginx untuk melaksanakan proksi terbalik dan pengimbangan beban, Menjadikan aplikasi Golang lebih cekap dan stabil semasa penggunaan.
3. Pasang Nginx dan komponen yang berkaitan
1. Pasang Nginx
Hanya laksanakan arahan berikut untuk melengkapkan pemasangan Nginx yang ringkas:
$ sudo apt-get update $ sudo apt-get install nginx
Selepas pemasangan selesai, gunakan arahan berikut untuk memulakan Nginx:
$ sudo systemctl start nginx
2. Cipta aplikasi Golang
Di sini untuk menunjukkan cara menggunakan aplikasi Golang, kami menulis ringkasan fail hello.go, Kodnya adalah seperti berikut:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, Nginx!") }) http.ListenAndServe(":8080", nil) }
3. Susun fail binari
Dalam direktori akar aplikasi Golang, laksanakan arahan berikut untuk menyusun dan menjana fail binari:
$ go build -o myapp
Perduaan yang dijana akan diletakkan dalam fail myapp dalam direktori semasa.
4. Jalankan aplikasi Golang
Jalankan arahan berikut dalam terminal baris arahan untuk menjalankan aplikasi Golang:
$ ./myapp
Selepas berjalan, anda boleh menggunakan localhost dalam pelayar :8080 untuk mengakses aplikasi.
4. Konfigurasikan Nginx
1. Proksi terbalik
Untuk memudahkan penggunaan aplikasi Golang, kami perlu menggunakan permintaan proksi terbalik Nginx. Edit fail konfigurasi Nginx /etc/nginx/nginx.conf dan ubah suainya kepada kandungan berikut:
user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; multi_accept on; } http { upstream myapp{ server 127.0.0.1:8080; } server { listen 80; server_name localhost; location / { proxy_pass http://myapp; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } }
Selepas pengubahsuaian selesai, gunakan arahan berikut untuk memulakan semula Nginx untuk menjadikan konfigurasi berkuat kuasa:
$ sudo systemctl restart nginx
Seterusnya, akses localhost dalam bar alamat penyemak imbas untuk mengakses aplikasi Golang.
2. Pengimbangan beban
Untuk senario keselarasan tinggi dalam persekitaran pengeluaran, kami perlu menggunakan mekanisme pengimbangan beban untuk meningkatkan prestasi dan kestabilan sistem. Nginx menyediakan pelbagai strategi pengimbangan beban, termasuk pengundian, IP Hash, Titik Akhir Berwajaran, dsb. Dalam artikel ini, kami mengambil strategi pengundian sebagai contoh untuk memperkenalkan cara mengkonfigurasi pengimbangan beban Nginx.
Dalam fail konfigurasi Nginx, ubah suai bahagian huluan konfigurasi untuk mencapai pengimbangan beban:
upstream myapp { server 127.0.0.1:8080; server 127.0.0.1:8090; server 127.0.0.1:8100; } server { listen 80; server_name localhost; location / { proxy_pass http://myapp; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Di sini kami telah mengkonfigurasi tiga tika aplikasi Golang dan Nginx akan menggunakan permintaan Agihan kepada setiap contoh. Selepas pengubahsuaian selesai, mulakan semula Nginx.
5. Gunakan Penyelia untuk pengurusan proses
Dalam persekitaran pengeluaran, kita perlu menggunakan alat pengurusan proses untuk mengurus aplikasi ialah alat pengurusan proses yang biasa digunakan.
Mula-mula, pasang Penyelia:
$ sudo apt-get install supervisor
Kemudian, buat fail konfigurasi Penyelia, seperti myapp.conf Kandungan fail konfigurasi adalah seperti berikut:
[program:myapp] command=/path/to/myapp autostart=true autorestart=true user=username
Antaranya, arahan ialah perintah yang dilaksanakan, autostart dan autorestart ialah aplikasi permulaan automatik dan mulakan semula Penyelia. Gunakan arahan berikut untuk memulakan Penyelia:
$ sudo systemctl start supervisor
Penyelia akan sentiasa menyemak sama ada aplikasi berjalan Jika ia mendapati program keluar secara tidak normal, ia akan memulakan semula aplikasi secara automatik.
6. Ringkasan
Artikel ini memperkenalkan cara menggunakan Nginx untuk menggunakan aplikasi Golang dan menggunakan Supervisor untuk pengurusan proses. Melalui proksi terbalik dan mekanisme pengimbangan beban, kami boleh menggunakan aplikasi Golang berprestasi tinggi dan stabil dengan mudah. Adalah disyorkan agar pembaca membuat pelarasan dan pengoptimuman yang sesuai dalam persekitaran pengeluaran sebenar.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan golang dalam nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!