javascript - nginx:nginx反向代理在服务器上工作,但在本地主机上不工作
问题描述
我有一个使用 prisma/graphql 的后端服务。并且后端在端口 4001 上运行。这是我的 Nginx 配置文件的代理通行证proxy_pass:http://$host:4001
当我从服务器运行它时,它同时适用于两者http://server:4001
,http://server
但是,当我从本地主机运行它时,我收到以下错误:
no resolver defined to resolve localhost, client: 172.30.0.1, server: _, request: "GET / HTTP/1.1", host: "localhost"
是什么导致了这个错误以及如何解决它?
码头工人撰写:
backend:
image: base
command: >
sh -c "npm run deploy && npm run start"
env_file: ${ENV_FILE}
ports:
- '4001:4001'
depends_on:
- prisma
restart: always
volumes:
- ./deploy/certs:/deploy/certs
nginx:
image: nginx:latest
volumes:
- ./deploy/certs:/deploy/certs
- ./deploy/nginx/conf.d:/etc/nginx/conf.d
ports:
- 80:80/tcp
- 443:443/tcp
depends_on:
- backend
restart: always
env_file: ${ENV_FILE}
nginx配置:
server {
listen 80 default_server;
server_name _;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://$host:4001;
}
}
解决方案
我想您需要连接到文件backend
中指定docker-compose.yml
的服务nginx.conf
。
例如
upstream localhost {
server backend:4001;
}
server {
listen 80;
server_name localhost;
}
你能试试这个吗?
推荐阅读
- flutter - Flutter 中的变焦相机
- sql - 是否可以根据 SQL-PostgreSQL 中的 CHILD 表对父表进行排序?
- python - 如何从python中的列表中删除重复项
- c++ - 带和不带换行的文件读取
- css - React(使用创建反应应用程序)是否会自动预加载 .css 样式表中定义的字体?
- c# - 通过 DbContextOptionsBuilder.UseSqlite 的 Sqlite 数据库的相对路径?
- python - 如何在 Keras 中的多变量多步 LSTM 实现中标准化(和反转预测)
- lerna - Lerna 仅在更改的包上运行
- json - 如何命名我的反应组件以容纳嵌套 JSON 中的元素?
- json - 使用 shell 脚本进行 Ip:port 连接测试