当我们想在一个服务器上部署多个 go 站点时,每个go项目运行都需要独立的端口,但80端口只有一个,您可以通过 nginx 或者 apache 服务器的反向代理功能实现在一个服务器上部署多个 go 站点。还可以利用 nginx 反向代理实现负载均衡。
Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强。
官网 : https://nginx.org/
下载地址 https://nginx.org/en/download.html
选择对应的 Nginx 版本下载并安装。
模拟场景 :
go web server 项目运行端口 11022
nginx 反向代理配置 :
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://127.0.0.1:11022;
root html;
index index.html index.htm;
}
# ......
}
配置多个 server {} 对应不同的 server_name 及 http://127.0.0.1:不同端口,即可实现基于 nginx 的反向代理功能,从而实现在一个服务器上部署多个 go 站点。
nginx 启动命令
start nginx.exe // 启动 nginx
nginx.exe -s stop //停止 nginx
nginx.exe -s reload //重新加载 nginx
nginx.exe -s quit //退出 nginx
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot "/******"
ServerName localhost
ServerAlias localhost
<IfModule mod_proxy.c>
ProxyRequests Off
SSLProxyEngine on
ProxyPass / http://127.0.0.1:11022/
ProxyPassReverse / http://127.0.0.1:11022/
</IfModule>
#PROXY-END
#......
</VirtualHost>