Asked May 24th, 8:45 AM 80 0 1
  • 80 0 1
0

proxy nginx not working

Share
  • 80 0 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ì...

May 24th, 9:14 AM

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?

0
| Reply
Share
May 24th, 9:54 AM

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

0
| Reply
Share
May 24th, 11:06 AM

@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;
0
| Reply
Share
May 24th, 11:12 AM

@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.

0
| Reply
Share
May 24th, 1:00 PM

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

0
| Reply
Share
May 24th, 2:31 PM

@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.

0
| Reply
Share
May 24th, 3:07 PM

@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?

0
| Reply
Share
No Naem @Naem
May 28th, 10:31 AM

@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)

0
| Reply
Share

1 ANSWERS


Answered Aug 5th, 8:00 AM
0

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

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

Share