Điểm:0

Nginx/proxy không hoạt động bình thường

lá cờ de

Gần đây tôi đã gỡ cài đặt apache2 cho Nginx Tôi đang cố gắng nghe trên 88, 808 và 888 cho các trang web của mình và chuyển hướng các tên miền phụ khác nhau cho từng tên miền (và một tên miền khác đến một máy chủ khác). vấn đề là Nginx đang cung cấp cổng xấu cho tất cả các yêu cầu được ủy quyền và hết thời gian chờ để truy cập ip trực tiếp.

xác nhận ủy quyền: --> otherdomain.fr = eror 502 cổng xấu

# HTTP
người phục vụ {
    # Nghe trên ipv4
    nghe 80;
    #nghe [::]:80;

    server_name ~.*.otherdomain.fr;

    địa điểm / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass "http://192.168.1.17";
    }
}

người phục vụ{
    nghe 80;
    server_name nextcloud.domain.me;
    địa điểm / {
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_pass "http://127.0.0.1:888";
        proxy_redirect tắt;
    }
}

người phục vụ{
    nghe 80;
    server_name domain.me;
    địa điểm / {
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_pass "http://127.0.0.1:808";
        proxy_redirect tắt;
    }
}

ví dụ cho cổng 88: --> ip:88 = hết thời gian chờ

(rõ ràng, nó đã được bật và người dùng nginx có quyền truy cập vào các tệp)

người phục vụ {
    # Nghe trên ipv4
    nghe 88;
  
    địa điểm / {
        gốc /var/www/html/kiểm tra;
    }

}

Rõ ràng là tôi đang làm sai điều gì đó nhưng tôi không thể tìm ra điều gì, nếu bạn có thể giúp tôi một tay thì điều đó thật tuyệt vời. Cảm ơn bạn trước!

CHỈNH SỬA :

netstat -tulpen | grep -E '8.?8'

tcp 0 0 127.0.0.1:10028 0.0.0.0:*
NGHE 0 28186 1929/tcp chính 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 91603 8801/nginx: master tcp 0 0 127.0.0.1:12340
0.0.0.0:* NGHE 0 25868 734/dovecot tcp 0 0 127.0.0.1:631 0.0.0.0:*
NGHE 0 19881 497/cupsd tcp 0 0 0.0.0.0:88 0.0.0.0:* LISTEN 0 75033 8801/nginx: master tcp 0 0 0.0.0.0:888
0.0.0.0:* LISTEN 0 75032 8801/nginx: master tcp 0 0 0.0.0.0:443 0.0.0.0:*
NGHE 0 75030 8801/nginx: master tcp 0
0 127.0.0.1:10025 0.0.0.0:* NGHE 0
28182 1929/chính udp6 0 0 :::32885
:::* 113 21172
482/avahi-daemon: r"""

digijay avatar
lá cờ mx
Lý do để phân biệt các cổng và sau đó ủy quyền cho chúng là gì? Đầu ra của `netstat -tulpen | grep -E '8.?8?'`` ? Bạn có chỉ thị `listen` cho tất cả các cổng này không?
louis habert avatar
lá cờ de
1./ Tôi đang ủy quyền và phân biệt các cổng vì tôi sử dụng một máy chủ khác nhau cho mỗi cổng (808 là dịch vụ cherrypy thực sự không chạy, otherdomain.fr là một máy khác (apache2), 888 là nextcloud với phiên bản nginx này (và php8.0) và tôi chỉ sử dụng 88 cho mục đích thử nghiệm nên tôi không sử dụng tên miền phụ cho nó) 2./ xem CHỈNH SỬA 3./ vâng tôi biết
louis habert avatar
lá cờ de
CHỈNH SỬA: Tôi có thể xóa cổng cho nextcloud và có thể là cổng 88
djdomi avatar
lá cờ za
nginx yêu cầu một vị trí, tên máy chủ hoặc ip trong tên máy chủ. nếu không nó sẽ không phục vụ nội dung vì nó không biết phải làm gì với nó. Hơn nữa, vì lý do gì bạn lại uae `~.*.` trong tên máy chủ?
lá cờ us
Nội dung của nginx `error.log` là gì?
louis habert avatar
lá cờ de
@djdomi regex được tạo để chuyển hướng mọi tên miền phụ của otherdomain.fr sang ip này
louis habert avatar
lá cờ de
@TeroKilkanen Đối với 3 yêu cầu: tên miền khác.fr tên miền.me:88 nextcloud.domain.me Tôi có : `2021/11/05 10:05:52 [lỗi] 22452#22452: *1 connect() không thành công (113: Không có tuyến đến máy chủ) trong khi kết nối với thượng nguồn, máy khách: 172.70.90.59, máy chủ: ~.*.otherdomain .fr, yêu cầu: "NHẬN / HTTP/1.1", ngược dòng$ 2021/11/05 10:05:55 [lỗi] 22452#22452: *3 connect() fail (113: No route to host) trong khi kết nối với thượng nguồn, máy khách: 172.70.162.73, máy chủ: ~.*.otherdomain. fr, yêu cầu: "NHẬN /favicon.ico HTTP/1.$`
Điểm:1
lá cờ us

Bạn không cần trích dẫn xung quanh URL đích của proxy_pass.

Vấn đề chính là server_name ~.*.otherdomain.fr và thực tế là bạn đang sử dụng proxy_set_header Máy chủ lưu trữ $host.

Trong trường hợp này, có vẻ như biểu thức chính quy của bạn cho tên máy chủ không hợp lệ và nó được coi là một chuỗi. Chuỗi đó xuất hiện sau đó trong máy chủ $ Biến đổi.

Bạn nên thử

server_name *.otherdomain.fr;

thay thế. Nếu điều đó không hiệu quả, hãy sử dụng

proxy_set_header Máy chủ $http_host;

Chuyển tiêu đề Máy chủ HTTP trở đi thay vì nội dung của máy chủ $ Biến đổi.

djdomi avatar
lá cờ za
tôi đã đoán chính xác rằng regrx hoạt động nhưng xung đột với phần còn lại;) thabks làm rõ những suy nghĩ của tôi

Đă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.