Nginx反向代理+Go服务实践
前言
在后端開發(fā)期間,會為前端或者平臺上提供API服務接口,這時、我們看完今天的文章可以詳細了解到Nginx反向代理到后端服務上的過程。
Nginx:
是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務??梢宰龇聪虼?、正向代理,靜態(tài)服務器等。
負載均衡算法:
upstrem支持4種負載均衡調(diào)度算法:
反向代理:
客戶端-->代理<-->服務端
舉例說明:
比如在北京租房子,我們就好比客戶端,我愛我家中介好比代理,實際上我們不一定能看到房主(服務端)
我們在租房子的過程中,知道中介是誰,但是不知道房主是誰。
服務器三臺:
webApi服務:
Go語言基于gin框架開發(fā)的HTTP服務,服務啟動監(jiān)聽10080端口號
/usr/local/brand/bin/webApi --config-dir=/usr/local/webApi/config api
Nginx配置:
# 進程數(shù),一般情況下與CPU個數(shù)一致
# 進程數(shù),一般情況下與CPU個數(shù)一致 worker_processes 24;events {use epoll;#單個worker process進程的最大并發(fā)鏈接數(shù)worker_connections 65535; }http {# 其他配置省略include vhosts/api.test.com.conf; }api.test.com.conf配置:
server_name為api.test.com,監(jiān)聽80端口,將所有請求轉(zhuǎn)發(fā)到http://192.168.0.*:10080下面
cat /usr/local/nginx/conf/vhost/api.test.com.conf# 配置負載均衡,均衡負責輪詢的方式進行負載 upstream api.test.com {# server 要代理到的服務器節(jié)點,weight是輪詢的權(quán)重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以"/"結(jié)尾,則表示絕對路徑,否則表示相對路徑proxy_pass http://api.test.com;} }我們請求后返回:http://api.test.com/d/a?page=1&page_size=20,對應的結(jié)果有5條記錄,這個時候已經(jīng)說明請求是成功的。
Nginx訪問日志如下:
==> /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"已經(jīng)成功的訪問到了我們的Nginx+Go服務。
總結(jié)
本文中實踐了Nginx代理到后端Go服務的知識,部署簡單,實用。
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Nginx反向代理+Go服务实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go语言中面向对象
- 下一篇: Nginx配置参数说明