» Go:使用Gin构建REST API » 3. 部署 » 3.2 Nginx反向代理

Nginx反向代理

此刻,你的端点 URL 如下所示:

http://localhost:8080/books

让我们剥去端口部分(:8080)。

你可以简单地在配置文件中将服务运行端口改成 80

端口 80443 分别是 HTTP 和 HTTPS 协议服务的默认端口。它们在 URL 中不显示。

@@ -1,5 +1,5 @@
 app:
-  port: 8080
+  port: 80
   page_size: 5

但是,如果你在一台机器上有多个服务(api服务器,web服务器,聊天服务器等),且想将全部服务通过 80 端口对外服务,又该如何呢?

你需要反向代理

Nginx 配置

安装 nginx:https://nginx.org/en/docs/install.html

假设你有一个运行在 8080 端口的 API 服务和一个运行在 3000 端口的 web 服务。 你可以如下设置 Nginx 配置:

server {
    listen 80;

    server_name yourdomain.com;

    location /web {
        proxy_pass http://localhost:3000;
        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;
    }

    location / {
        proxy_pass http://localhost:8080;
        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;
    }
}

重载 Nginx 并应用这些更改。

然后,你可以发出如下请求了:

curl http://localhost/books