Nginx reverse proxy + Go práctica de servicio

Prefacio
Durante el desarrollo del back-end, se proporcionarán interfaces de servicio API para el front-end o la plataforma. En este momento, podemos aprender más sobre el proceso del proxy inverso de Nginx para el servicio de back-end después de leer el artículo de hoy.

Nginx:
es un servidor web HTTP de alto rendimiento y proxy inverso, y también proporciona servicios IMAP / POP3 / SMTP. Puede hacer proxy inverso, proxy directo, servidor estático, etc.

Algoritmo de equilibrio de carga:
upstrem admite 4 algoritmos de programación de equilibrio de carga:

Peso (peso): cada solicitud se asigna a diferentes servidores de fondo uno por uno en orden cronológico, el valor predeterminado es el método de sondeo
url_hash: la solicitud se asigna de acuerdo con el hash de la URL de acceso
ip_hash: la solicitud se asigna de acuerdo con el hash de la IP de acceso, si el usuario La IP es fija y también puede resolver el problema de la sesión
justa: solicitud de asignación inteligente basada en el tamaño de página y el tiempo de carga, asignación de prioridad con tiempo de respuesta corto
proxy inverso:
cliente-> servidor proxy <->

Ejemplos:

Por ejemplo, al alquilar una casa en Beijing, somos como un cliente, me encanta que mi agencia sea como un agente, de hecho, no necesariamente vemos al propietario (servidor)

En el proceso de alquilar una casa, sabemos quién es el agente, pero no sabemos quién es el propietario.

Tres servidores:

server 192.168.0.1
server 192.168.0.2
server 192.168.0.3

Servicio webApi: el
lenguaje Go se basa en el servicio HTTP desarrollado por el marco gin. El servicio comienza a escuchar en el puerto 10080

/usr/local/brand/bin/webApi --config-dir=/usr/local/webApi/config api

Configuración de Nginx:


# 进程数,一般情况下与CPU个数一致
worker_processes  24;

events {
    use epoll;
    #单个worker process进程的最大并发链接数
    worker_connections  65535;
}

http {
    # 其他配置省略
    include vhosts/api.test.com.conf;
}

Configuración de api.test.com.conf:
nombre_servidor es api.test.com, escuche el puerto 80 y reenvíe todas las solicitudes a http: //192.168.0.*: 10080

cat /usr/local/nginx/conf/vhost/api.test.com.conf

# 配置负载均衡,均衡负责轮询的方式进行负载
upstream api.test.com {
    # server 要代理到的服务器节点,weight是轮询的权重
    server 192.168.0.1:10080 weight=1;
    server 192.168.0.2:10080 weight=1;
    server 192.168.0.3:10080 weight=1;
}

server {
    listen       80;
    server_name  api.test.com;

    access_log  /data/log/nginx/api.test.com.access.log;
    error_log  /data/log/nginx/api.test.com.error.log;

    location / {
        # proxy_pass 要注意如何url以"/"结尾,则表示绝对路径,否则表示相对路径
        proxy_pass http://api.test.com;
    }
}

Volvemos después de la solicitud: http://api.test.com/d/a?page=1&page_size=20, el resultado correspondiente tiene 5 registros, esta vez ya ha indicado que la solicitud fue exitosa.

El registro de acceso de Nginx es el siguiente:

==> /data/log/nginx/api.test.com.access.log <==
192.168.0.123 - - [22/Apr/2020:22:01:01 +0800] "GET /d/a?page=1&page_size=20 HTTP/1.1" 200 656 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36"

Hemos accedido con éxito a nuestro servicio Nginx + Go.

Resumen
Este artículo ha practicado el conocimiento del proxy Nginx para los servicios de back-end de Go, y la implementación es simple y práctica.

Supongo que te gusta

Origin www.cnblogs.com/guichenglin/p/12760698.html
Recomendado
Clasificación