Nginx反向代理
此刻,你的端点 URL 如下所示:
http://localhost:3000/books
让我们剥去端口部分(:3000
)。
你可以简单地在配置文件中将服务运行端口改成 80
。
@@ -1,5 +1,5 @@
app:
- port: 3000
+ port: 80
page_size: 5
但是,如果你在一台机器上有多个服务(api服务器,web服务器,聊天服务器等),且想将全部服务通过 80 端口对外服务,又该如何呢?
你需要反向代理。
Nginx 配置
假设你有一个运行在 3000 端口的 API 服务和一个运行在 8888 端口的 web 服务。 你可以如下设置 Nginx 配置:
server {
listen 80;
server_name yourdomain.com;
location /web {
proxy_pass http://localhost:8888;
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: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;
}
}
重载 Nginx 并应用这些更改。
然后,你可以发出如下请求了:
curl http://localhost/books