Điểm:0

Sử dụng Reverse Proxy Nginx trong bộ chứa docker

lá cờ cn

Vì vậy, hãy cố gắng đặt Nginx làm proxy ngược bằng cách sử dụng docker - Tôi có ba bộ chứa nút js (một giao diện người dùng và hai dịch vụ phụ trợ), dịch vụ giao diện người dùng gọi hai dịch vụ phụ trợ. Vì vậy, tôi muốn nginx chuyển hướng đến giao diện người dùng (là ứng dụng web), nhưng mỗi khi tôi cố gửi thứ gì đó, tôi lại gặp lỗi 502 cổng xấu. Khi tôi thực hiện trực tiếp vào các bộ chứa docker, tôi có thể ping các bộ chứa khác thông qua dns_hostname hoặc địa chỉ ip (mà tôi lấy từ docker examine) Đây là phiên bản đã chỉnh sửa của cả docker-compose và nginx.conf của tôi

    phiên bản: "3.8"
dịch vụ:
  giao diện người dùng:
    hình ảnh: frontend
    tên máy chủ: giao diện người dùng
    env_file:
      /.env
    mạng:
      - mạng
    khởi động lại: khi thất bại
    lộ ra:
      - "3000"
    container_name: lối vào
    dịch vụ phụ trợ-01:
      hình ảnh: dịch vụ phụ trợ-01
        tên máy chủ: dịch vụ phụ trợ-01
        env_file:
            ./backend-service-01/.env
        mạng:
            - mạng
        khởi động lại: khi thất bại
        container_name: dịch vụ phụ trợ-01
   dịch vụ phụ trợ-02:
        hình ảnh: dịch vụ phụ trợ-02
        tên máy chủ: dịch vụ phụ trợ-02
        env_file:
            ./backend-service-02/.env
        mạng:
            - mạng
        khởi động lại: khi thất bại
        container_name: dịch vụ phụ trợ-02
        
   nginx-proxy:
     hình ảnh: nginx:ổn định-alpine
     tên máy chủ: nginx-proxy
     mạng:
       - mạng
     khởi động lại: khi thất bại
        khối lượng:
          - /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
          - /data/nginx/certs/crt_file.crt:/etc/nginx/crt_file.crt
          - /data/nginx/certs/priv_key.key:/etc/nginx/priv_key.key:ro
        cổng:
            - 80:80
            - 443:443
        container_name: nginx-proxy
        phụ thuộc: 
          - giao diện người dùng
          - dịch vụ phụ trợ-01
          - dịch vụ phụ trợ-02
mạng:
    mạng:

Ngoài ra, đây là tệp conf nginx tôi đang sử dụng:

worker_processes tự động;
pid /run/nginx.pid;
bao gồm /etc/nginx/modules-enabled/*.conf;

sự kiện {
        công_nhân kết_nối 1024 ;
}

http {

  giao diện ngược dòng {
    giao diện máy chủ: 3000;
  }
    
  người phục vụ {
        
        # Nghe Chỉ thị trên Cổng 443 (TLS)
        nghe 443 ssl; 
        nghe [::]:443 ssl;

        ssl_certificate /etc/nginx/crt_file.crt;
        ssl_certificate_key /etc/nginx/priv_key.key;

        # Nơi chúng tôi lưu trữ error.log và access.log
        error_log /var/log/nginx/error.log;
        access_log /var/log/nginx/access.log;

        địa điểm / {
            gốc /usr/src/app/public/;
            proxy_pass https://frontend;
        }
  }
}

Tôi gần như đã làm mọi thứ để loại trừ sự cố mạng, vì tôi có thể ping cả địa chỉ IP và tên máy chủ docker giao diện người dùng từ bên trong bộ chứa nginx (sử dụng docker exec -it nginx-proxy sh) thử làm gì tiếp theo hoặc họ có thể thấy rõ nếu tôi làm sai điều gì đó thì điều đó sẽ được đánh giá cao.

djdomi avatar
lá cờ za
1) HOẶC `proxy_pass` 2) HOẶC `root /path` 3) Tôi khuyên bạn nên sử dụng IP, tôi cũng thiếu `server_name` và cả `proxy_set_header Host $http_host;`
Điểm:0
lá cờ cn

Đã giải quyết vấn đề - Vấn đề không phải do Docker hay Nginx. Vấn đề là một nhà phát triển trước đây đang cố tỏ ra hữu ích nhưng cuối cùng lại đá vào mông chúng tôi trong thời gian dài. Họ đã tạo một chuyển hướng trong mã của họ mà nếu ai đó cố gắng sử dụng giao thức HTTP, nó sẽ tự động chuyển hướng sang giao thức HTTPS, sau khi chúng tôi nhận xét một vài dòng mã phiền phức này và xây dựng lại vùng chứa, thật ngạc nhiên, thật ngạc nhiên... Nginx đã làm đúng như vậy kể lại. Bài học rút ra: Yêu cầu Nginx thực hiện chuyển hướng của bạn; không phải mã của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.