Yêu cầu thg 5 24, 2019 8:45 SA 146 1 1
  • 146 1 1
0

proxy nginx not working

Chia sẻ
  • 146 1 1

Mình đang chạy dự án Laravel sử dụng Laradock. Dùng reactjs làm client, mình build client ra folder dist, ném qua root laravel cùng deploy lên Workspace của Laradock, Cấu hình Client.conf

server {
    listen 80;
    # gzip config
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    server_name client.test;
    root /var/www/dist;

    location / {
        try_files $uri $uri/ /index.html;
    }
    location /api {
        proxy_pass https://server.test;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
    }
}

Mình dùng proxy để xử lý request từ client tới server, không rõ do đâu mà không request tới server được, xem log nginx cũng k ra vấn đề gì, mình thử nhiều cách mà k khắc phục được, không rõ do nginx cấu hình sai hay container network có vấn đề gì...

thg 5 24, 2019 9:14 SA

Mình đọc mà chưa hiểu lằm. Tức là bạn đang các services:

  • Frontend: Viết bằng react build thành static pages; SPA??
  • API: Dùng Laravel, reverse-proxy /api/ để truy cập?
  • Nginx: Reverse proxy cho frontend và API

Không biết phải vậy ko nhỉ? Với tất cả các services đều đang dùng docker hay như nào vậy bạn?

thg 5 24, 2019 9:54 SA

@huukimit Đúng bạn, Forntend là static, mình đang k rõ sao nó lại k request tới backend được.

thg 5 24, 2019 11:06 SA

@s2banggia88

proxy_pass https://server.test;

Server API cũng có domain à bạn, mình tưởng nó chạy ở cổng nào thôi chứ

proxy_pass http://localhost:8009;
thg 5 24, 2019 11:12 SA

@pht mình cho n chạy port 80, đang xem sao n k chạy, nếu mất thời gian quá chắc cho n chạy khác port, deploy khác container.

thg 5 24, 2019 1:00 CH

@s2banggia88 access log và error log khi request đến /api là gì vậy b?

thg 5 24, 2019 2:31 CH

@pht

2019/05/24 14:29:09 [error] 9#9: *2 upstream timed out (110: Operation timed out) while connecting to upstream, client: 172.22.0.1, server: client.test request: "GET /api/auth/me HTTP/1.1", upstream: "http://125.235.4.59:80/api/auth/me", host: "client.test", referrer: "http://client.test/product/list"

giờ đang bị timeout.

thg 5 24, 2019 3:07 CH

@s2banggia88 Thế thì do ko connect được đến server rồi, chứ mình thấy config nginx kia ko có vấn đề.

Bạn thử ping đến xem đc ko, hay do https?

Avatar No Naem @Naem
thg 5 28, 2019 10:31 SA

@s2banggia88 Có khi nào cổng 80 ở local đang chạy apache2 ko, hình như 2 thằng server khác nhau (nginx, apache2) sẽ ko dùng chung trên cùng 1 cổng được thì phải (hoặc phải cho listen trên cổng khác)

1 CÂU TRẢ LỜI


Đã trả lời thg 8 5, 2019 8:00 SA
0

Nếu: server { listen 80; đã là port 80

thì bắt buộc proxy_pass phải là port khác nhé:

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí