1 nginx
我想使用 NGINX 将对 /api 的请求重定向到在 localhost:3000 上运行的节点应用程序
我正在尝试使用 proxy_pass 重定向请求
server {
listen 80;
server_name localhost;
root /var/www/mydomain/html;
index index.html index.htm;
location /api {
proxy_pass http://127.0.0.1:3000/;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在浏览器中访问本地主机,我会看到前端应用程序,所以这是正确的。
如果我点击http://127.0.0.1:3000(或 localhost:3000),我会收到来自节点 API 的响应,所以这是正确的。
但是当我尝试访问 localhost/api 时出现以下错误:
[错误] 6#6:*3 连接()失败(111:连接被拒绝),同时连接 > 到上游,客户端:172.18.0.1,服务器:localhost,请求:“GET /api >HTTP/1.1”,上游:“ http://127.0.0.1:3000/ ”,主机:“localhost”
编辑:
我正在使用 docker-compose 来管理服务:
services:
nginx:
container_name: nginx-local
build:
context: .
dockerfile: ./nginx.dev.dockerfile
volumes:
...
ports:
- '80:80'
networks:
- local-network
node:
container_name: node-api
build:
context: ./api
dockerfile: .docker/node.dockerfile
ports:
- '3000:3000'
networks:
- local-network
Run Code Online (Sandbox Code Playgroud)
根据文件,docker-compose
配置nginx
需要更改为
server {
listen 80;
server_name localhost;
root /var/www/mydomain/html;
index index.html index.htm;
location /api {
proxy_pass http://node-api:3000/;
}
}
Run Code Online (Sandbox Code Playgroud)
这是由于docker
节点应用程序的单独映像所致。所以你需要使用代理通行证来指向正确的位置。
归档时间: |
|
查看次数: |
6119 次 |
最近记录: |