Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan golang dalam nginx

Bagaimana untuk menggunakan golang dalam nginx

PHPz
PHPzasal
2023-04-13 09:20:101714semak imbas

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:

  1. Kompilasi program Golang untuk menjana binari fail
  2. Gunakan pelayan proksi Nginx untuk memajukan permintaan
  3. Gunakan Penyelia untuk pengurusan proses

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!

Kenyataan:
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