当前位置: 首页 > 知识库问答 >
问题:

Nginx错误失败(111:连接被拒绝),而连接到上游,docker-compose nodejs

华星文
2023-03-14

我试图构建多个服务,并用Nginx反向代理它们。

所以service1是:

http://api/service1(nginx)=>docker(http://service1:4001/)=>express(http://localhost:4000)

这是我第一次从头开始尝试nginx,我被困住了,我无法从http://localhost:80/service1或http://api/service1访问任何服务。你认为这是开发和生产的微服务体系结构的一个良好开端吗?

我对我的docker里面的网络也有疑问,放那个网络还是让默认的docker网络准确吗?

(所有的容器运转良好);

version: '3'

services:
  mongo:
    container_name: mongo
    image: mongo:latest
    ports:
      - '27017:27017'
    volumes:
      - './mongo/db:/data/db'

  nginx:
    build: ./nginx
    container_name: nginx
    links:
      - service1
      - service2
    ports:
      - '80:80'
      - '443:443'
    depends_on:
      - mongo
    networks:
      - api

  service1:
    build: ./services/service1
    container_name: service1
    links:
      - 'mongo:mongo'
    volumes:
      - './services/service1:/src/'
    ports:
      - '4001:4000'
    command: yarn dev
    networks:
      - api

  service2:
    build: ./services/service2
    container_name: service2
    links:
      - 'mongo:mongo'
    volumes:
      - './services/service2:/src/'
    ports:
      - '4002:4000'
    command: yarn dev
    networks:
      - api

networks:
  api:
worker_processes 1  ;


events {
  worker_connections  1024;
}

http {

    server {
        listen       80;
        server_name api;
        charset utf-8;

    location /service1 {
        proxy_pass http://service1:4001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location /service2 {
        proxy_pass http://service2:4002;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    }
}
FROM node:latest

RUN mkdir /src
WORKDIR /src

COPY package.json /src/package.json
RUN npm install

COPY . /src/
EXPOSE 4000
FROM nginx

COPY nginx.conf /etc/nginx/nginx.conf

我正在尝试访问http://localhost:80/service1/,这通常会让我访问http://service1:4001

但我得到了一个错误:

[错误]7#7:*2connect()在连接到上游时失败(111:连接被拒绝),客户端:172.23.0.1,服务器:

我还试图访问http://api/service1/(nginx.conf中定义为server_name),但没有任何响应或ping。

共有1个答案

温源
2023-03-14
server {
    listen       80;
    server_name api;
    charset utf-8;

location /service1 {
    proxy_pass http://service1:4000;
    proxy_redirect      http://service1:4000: http://www.api/service1;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

location /service2 {
    proxy_pass http://service2:4000;
    proxy_redirect      http://service2:4000: http://www.api/service2;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}
 类似资料:
  • 我在nginx(http://52.xx.xx.xx/)上访问我的IP时遇到了502个网关错误,日志简单地说: 2015/09/18 13:03:37[错误]32636#0:*1连接()失败(111:拒绝连接),连接到上游,客户端:xx.xx.xx.xx,服务器:xx.xx.xx.xx,请求:“Get/HTTP/1.1”,上游:“UWSGI://127.0.0.1:8000”,主机:“xx.xx.

  • 问题内容: 我正在尝试将Redis用作我的使用Docker Compose的Django项目的Celery的代理。我无法弄清楚我到底做错了什么,但是尽管控制台日志消息告诉我Redis正在运行并接受连接(实际上,当我这样做时,我可以看到容器正在运行),但我仍然会收到有关拒绝连接的错误消息。我什至做到了 看到回应是。 这是my中的Celery设置: 这是my中的Redis容器设置: 我还记得将容器与我

  • 注意:最后一个###.##.###.####是运行代码的google compute VM的外部IP。我相信前两个IP是我的家IP。 在连接到上游:[nginx]时,我尝试了:上的

  • 似乎有很多关于StackOverflow的问题,但不幸的是,没有什么对我有效。 我在nginx上得到了一个502坏网关,日志中有以下内容: 我正在运行上的和,我一直在数字海洋上遵循这个指南。显然,我正确地配置了,因为工作,但我一直收到权限拒绝错误,我不知道原因: 在遇到这个问题和另一个问题后,我更改了文件,并添加了、、和参数(还尝试了只设置前两个或,以及两个不同的权限设置——即使是最允许的权限设置

  • 所以我在很长时间后再次安装了Android Studio,它要求我配置代理,所以我照做了。我测试了连接,它起作用了。 然后它让我为Gradle配置代理设置,我使用了相同的配置。 现在,在加载最新的 Vuforia 示例项目时,我收到一个错误: 分级同步失败:连接被拒绝:连接 我在网上到处都找遍了,但找不到解决办法。不可能是代理设置;我已经像IDE一样配置了Gradle。

  • 问题内容: 我将nginx更新为 1.4.7 ,将php 更新为 5.5.12 ,之后得到了 502错误 。在更新之前,一切正常。 nginx-error.log nginx.conf 问题答案: php更新后出现类似错误。PHP固定一个安全漏洞,其中有权限的套接字文件。 打开或,具体取决于您的版本。 取消注释所有权限行,例如: listen.group = www-data listen.mod