nginx settings golang

PHPz
Lepaskan: 2023-05-19 09:04:37
asal
760 orang telah melayarinya

Dalam senario aplikasi sebenar, menggunakan gabungan Nginx dan Golang boleh menyediakan perkhidmatan web dengan prestasi yang baik dan ketersediaan tinggi. Artikel ini akan memperkenalkan cara untuk membalikkan perkhidmatan Golang proksi melalui Nginx, dan cara menggunakan Nginx untuk pengimbangan beban di Golang.

1. Perkhidmatan Golang proksi terbalik Nginx

Proksi terbalik ialah seni bina pelayan biasa yang boleh meningkatkan prestasi dan kebolehpercayaan. Ia berfungsi dengan menghantar permintaan daripada klien ke pelayan proksi terbalik, yang kemudiannya memajukan permintaan ke pelayan sebenar dalam kluster pelayan dan mengembalikan respons kepada klien. Proksi terbalik Nginx ialah penyelesaian terbaik yang bukan sahaja berprestasi tinggi tetapi boleh mengendalikan beribu-ribu sambungan serentak dengan mudah.

Dalam aplikasi praktikal, terdapat dua kaedah utama proksi terbalik: satu ialah hos maya berdasarkan nama domain dan satu lagi berdasarkan laluan URL.

1. Proksi terbalik berasaskan nama domain

Andaikan nama domain anda ialah example.com, dan terdapat dua subdomain di bawah nama domain ini, satu ialah blog.example.com dan satu lagi ialah api .example.com. Anda mahu kedua-dua subdomain menghala ke pelayan yang berbeza. Kemudian Nginx anda boleh dikonfigurasikan seperti ini:

server {
    server_name blog.example.com;
    location / {
         proxy_pass http://your.blog.server;
    }
}

server {
    server_name api.example.com;
    location / {
         proxy_pass http://your.api.server;
    }
}
Salin selepas log masuk

2 proksi terbalik berasaskan URL

Andaikan anda ingin menyerahkan permintaan untuk /blog dan /api kepada pelayan yang berbeza untuk diproses. Kemudian Nginx anda boleh dikonfigurasikan seperti ini:

location /blog/ {
    proxy_pass http://your.blog.server;
}

location /api/ {
    proxy_pass http://your.api.server;
}
Salin selepas log masuk

Dengan cara ini, apabila pelanggan meminta kandungan pada example.com/blog/, Nginx akan memajukan permintaan ke your.blog.server dan bukannya mengembalikan kandungan tempatan. .

2. Golang menggunakan Nginx untuk pengimbangan beban

  1. Konfigurasi Nginx

Sebelum menggunakan klien Golang dan Nginx untuk pengimbangan beban, anda perlu memasangnya terlebih dahulu Nginx dan konfigurasikannya.

Arahan untuk memasang Nginx pada Ubuntu adalah seperti berikut:

sudo apt-get update 
sudo apt-get install nginx
Salin selepas log masuk

Selepas pemasangan selesai, tambah kandungan berikut dalam fail konfigurasi:

events {
    worker_connections  1024;
}

http {
    upstream your_go_server {
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;
    }

    server {
        listen 80;
        server_name localhost;
        location / {
            proxy_pass http://your_go_server;
        }
    }
}
Salin selepas log masuk

Modul huluan di sini mentakrifkan beban yang akan dijalankan Pelayan seimbang, dan berbilang pelayan boleh dikonfigurasikan untuk pengimbangan beban. Modul pelayan mentakrifkan port seimbang beban Nginx. Laluan / dalam modul lokasi menunjukkan bahawa Nginx akan memajukan semua permintaan.

  1. Kod klien Golang

Untuk memuatkan baki, anda perlu menggunakan perpustakaan klien HTTP Golang pada bahagian klien dan tulis fungsi "cari" untuk Pilih pelayan dalam senarai pelayan pengimbangan beban.

func findServer() string {
    servers := []string{"http://127.0.0.1:8080", "http://127.0.0.1:8081"}   //要进行负载均衡的服务器列表
    n := len(servers)
    rand.Seed(time.Now().UnixNano())  //定义随机种子
    index := rand.Intn(n)  //生成随机数
    return servers[index]   //返回随机选择的服务器
}
Salin selepas log masuk

Kemudian, apabila membuat permintaan HTTP, anda hanya perlu menambah "findServer()" di hadapan URL sumber:

client := &http.Client{}
req, err := http.NewRequest("GET", findServer()+"/example", nil)
response, err := client.Do(req)
Salin selepas log masuk

Dengan cara ini, kod klien Golang boleh lulus Nginx's pengimbangan beban Sistem melaksanakan pemprosesan teragih dengan baik.

Ringkasan

Melaksanakan proksi terbalik dan pengimbangan beban melalui gabungan Nginx dan Golang boleh meningkatkan prestasi dan ketersediaan tinggi aplikasi anda. Proksi terbalik boleh memajukan permintaan pelanggan ke pelayan sebenar untuk diproses, manakala pengimbangan beban boleh mengimbangi beban permintaan untuk mengelakkan beban berlebihan pada pelayan tertentu. Saya harap pengenalan dan contoh dalam artikel ini dapat membantu anda menggunakan Nginx dan Golang dengan lebih baik.

Atas ialah kandungan terperinci nginx settings golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!