Chúng tôi có một trang web nơi chúng tôi vừa thêm xác thực của bên thứ ba như Google, Twitter. Tôi đang thử kiểm tra các xác thực này trong máy chủ cục bộ (MacOS).
Tôi đang chạy docker để chạy nginx, đây là docker-compose-dev.xml
phiên bản: "3"
dịch vụ:
https:
hình ảnh: bitnami/nginx: mới nhất
khởi động lại: trừ khi dừng
cổng:
- 443:443/tcp
khối lượng:
- ./conf.d/dev.conf:/opt/bitnami/nginx/conf/server_blocks/default.conf:ro
extra_hosts:
- "host.docker.internal:host-gateway"
Và đây là conf.d/dev.conf
:
ngược dòng funfun {
máy chủ 178.62.87.72:443;
}
người phục vụ {
nghe 443 ssl;
máy chủ_tên máy chủ cục bộ;
ssl_certificate /certs/server.crt;
ssl_certificate_key /certs/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
bật ssl_prefer_server_ciphers;
ssl_session_timeout 1d;
tắt ssl_dập ghim;
tắt ssl_stapling_verify;
add_header Strict-Transport-Security max-age=15768000;
add_header X-Frame-Options "";
proxy_ssl_name "www.funfun.io";
proxy_ssl_server_name bật;
vị trí ~ /xã hộiĐăng nhậpSuccess {
viết lại ^ '/#/socialLoginSuccess' chuyển hướng;
}
vị trí ~ /auth/(.*) {
proxy_pass https://funfun/10studio/auth/$1?$query_string;
proxy_set_header Máy chủ lưu trữ cục bộ;
}
địa điểm / {
proxy_set_header Máy chủ lưu trữ $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Mã hóa chấp nhận "";
proxy_set_header Proxy "";
proxy_pass http://host.docker.internal:3000/;
# Ba dòng này được thêm vào theo https://github.com/socketio/socket.io/issues/1942 để xóa lỗi socketio
proxy_http_version 1.1;
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối "nâng cấp";
}
}
Cách chúng tôi khởi chạy ứng dụng là sudo PORT=8000 HTTPS=true ./node_modules/.bin/react-scripts bắt đầu
. sau đó https://localhost:8000/#/sign
trong trình duyệt sẽ mở trang có các nút xác thực.
Url của nút liên kết với xác thực Google là https://localhost/10studio/auth/google
. Bằng cách nhấp vào nó, tôi thấy đầu tiên https://localhost/10studio/auth/google
trong thanh địa chỉ của trình duyệt, nhưng trang nhập Google ID và mật khẩu không xuất hiện, vài giây sau, url trở thành https://localhost/#/socialLoginSuccess
, và trang hiển thị 502 Cổng Xấu
. Tôi thấy các bản ghi sau trong thiết bị đầu cuối đang chạy nginx:
$ docker-compose --f docker-compose-dev.yml lên
CẢNH BÁO: Đã tìm thấy vùng chứa mồ côi (frontend_10studio_1, frontend_frontend_1) cho dự án này. Nếu bạn đã xóa hoặc đổi tên dịch vụ này trong tệp soạn thảo của mình, bạn có thể chạy lệnh này với cờ --remove-orphans để dọn dẹp dịch vụ.
Đang bắt đầu frontend_https_1 ... xong
Đang đính kèm vào frontend_https_1
https_1 | nginx 21:24:05.37
https_1 | nginx 21:24:05.38 Chào mừng bạn đến với bộ chứa Bitnami nginx
https_1 | nginx 21:24:05.38 Đăng ký cập nhật dự án bằng cách xem https://github.com/bitnami/bitnami-docker-nginx
https_1 | nginx 21:24:05.39 Gửi các vấn đề và yêu cầu tính năng tại https://github.com/bitnami/bitnami-docker-nginx/issues
https_1 | nginx 21:24:05.39
https_1 | nginx 21:24:05.39 THÔNG TIN ==> ** Bắt đầu thiết lập NGINX **
https_1 | nginx 21:24:05.42 THÔNG TIN ==> Xác thực cài đặt trong NGINX_* env vars
https_1 | nginx 21:24:05.43 THÔNG TIN ==> Đang khởi tạo NGINX
https_1 | realpath: /bitnami/nginx/conf/vhosts: Không có tệp hoặc thư mục như vậy
https_1 |
https_1 | nginx 21:24:05.45 THÔNG TIN ==> ** Quá trình thiết lập NGINX đã hoàn tất! **
https_1 | nginx 21:24:05.47 THÔNG TIN ==> ** Bắt đầu NGINX **
https_1 | 172.19.0.1 - - [08/Nov/2021:21:25:06 +0000] "GET /10studio/auth/google HTTP/1.1" 302 0 "https://localhost:8000/" "Mozilla/5.0 (Macintosh ; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/95.0.4638.54 Safari/537.36" "-"
https_1 | 172.19.0.1 - - [08/Nov/2021:21:25:07 +0000] "GET /auth/google/callback?code=4%2F0AX4XfWiqleRl2StBpNOgOtzjqZlftvq9-uDmiPVLZqcgo2xjjhohu47iAV5qxoJThaQYzg&scope=email+profile+https%2Fwww.googleFap .com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid&authuser=0&prompt=none HTTP/1.1" 302 82 "https://localhost:8000/" "Mozilla /5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/95.0.4638.54 Safari/537.36" "-"
https_1 | 172.19.0.1 - - [08/Nov/2021:21:25:07 +0000] "GET /auth/signinSuccess HTTP/1.1" 302 82 "https://localhost:8000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/95.0.4638.54 Safari/537.36" "-"
https_1 | 172.19.0.1 - - [08/Nov/2021:21:25:07 +0000] "GET /socialLoginSuccess HTTP/1.1" 302 138 "https://localhost:8000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/95.0.4638.54 Safari/537.36" "-"
https_1 | 2021/11/08 21:25:39 [lỗi] 27#27: *2 connect() fail (110: Hết thời gian kết nối) trong khi kết nối với thượng nguồn, máy khách: 172.19.0.1, máy chủ: localhost, yêu cầu: "NHẬN / HTTP/1.1", ngược dòng: "http://192.168.65.1:3000/", máy chủ lưu trữ: "localhost", liên kết giới thiệu: "https://localhost:8000/"
https_1 | 172.19.0.1 - - [08/Nov/2021:21:25:39 +0000] "GET / HTTP/1.1" 502 552 "https://localhost:8000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/95.0.4638.54 Safari/537.36" "-"
Có ai biết có gì sai ở đây không?
Ngoài ra, khi tôi gỡ lỗi nginx, nó giống như một hộp đen đối với tôi. Tôi thực sự muốn có thể theo dõi và xem url nào đi vào khối vị trí nào và thay đổi thành url nào (bởi proxy_pass
hoặc viết lại
, vân vân.). Có ai có cách nào tốt hơn để gỡ lỗi hoặc đăng nhập không?