Làm cách nào để sửa lỗi net::ERR_SSL_PROTOCOL_ERROR khi tôi đặt nginx trước Tomcat?
#người dùng không ai;
worker_processes 1;
#error_log nhật ký/error.log;
thông báo #error_log log/error.log;
#error_log nhật ký/thông tin error.log;
#pid log/nginx.pid;
sự kiện {
công_nhân kết_nối 1024 ;
}
http {
bao gồm mime.types;
ứng dụng default_type/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
nhật ký #access_log/access.log chính;
gửi tệp trên;
#tcp_nopush bật;
#keepalive_timeout 0;
keepalive_timeout 65;
ngược dòng tomcat {
máy chủ 127.0.0.1:8330;
}
bộ ký tự utf-8;
#gzip trên;
người phục vụ {
nghe 8331 ;
máy chủ_tên máy chủ cục bộ;
# trả lại 301 https://$host$request_uri;
#charset koi8-r;
nhật ký #access_log/host.access.log chính;
địa điểm / {
# html gốc;
# chỉ mục index.html index.htm;
# proxy_pass http://sgmng.pluggolf.com;
proxy_set_header Máy chủ $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
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";
proxy_set_header Nguồn gốc "";
# Mới
# Sao chép đường dẫn ngược dòng được thiết lập ở trên
proxy_pass https://tomcat;
# proxy_redirect tắt;
bộ ký tự utf-8;
}
#lỗi_trang 404 /404.html;
# chuyển hướng trang lỗi máy chủ sang trang tĩnh /50x.html
#
error_page 500 502 503 504 /50x.html;
vị trí = /50x.html {
html gốc;
}
# ủy quyền tập lệnh PHP để nghe Apache trên 127.0.0.1:80
#
#vị trí ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# chuyển tập lệnh PHP tới máy chủ FastCGI đang nghe trên 127.0.0.1:9000
#
#vị trí ~ \.php$ {
# html gốc;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# bao gồm fastcgi_params;
#}
# từ chối quyền truy cập vào tệp .htaccess, nếu tài liệu gốc của Apache
# đồng tình với nginx
#
#vị trí ~ /\.ht {
# Phủ nhận tất cả;
#}
}
# một máy chủ ảo khác sử dụng kết hợp cấu hình dựa trên IP-, tên- và dựa trên cổng
#
# người phục vụ {
# nghe 8080 ;
# nghe somename:8080;
# server_name somename alias other.alias;
# địa điểm / {
# html gốc;
# chỉ mục index.html index.htm;
# }
# }
# máy chủ HTTPS
người phục vụ {
nghe 8332 ssl;
máy chủ_tên máy chủ cục bộ;
bộ ký tự utf-8;
ssl_certificate D:/service/cbdc_dt/nginx/cert/plusity.crt;
ssl_certificate_key D:/service/cbdc_dt/nginx/cert/plusity.key;
# ssl_session_cache được chia sẻ:SSL:1m;
# ssl_session_timeout 5 phút;
ssl_ciphers CAO:!aNULL:!MD5;
bật ssl_prefer_server_ciphers;
địa điểm / {
# html gốc;
# chỉ mục index.html index.htm;
proxy_pass http://tomcat;
proxy_set_header Máy chủ $http_host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
# proxy_set_header X-NginX-Proxy true;
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối '';
proxy_set_header Nguồn gốc "";
proxy_http_version 1.1;
chunked_transfer_encoding tắt;
tắt proxy_buffering;
tắt proxy_cache;
proxy_read_timeout 7d;
proxy_redirect tắt;
bộ ký tự utf-8;
}
}
}
Sau khi áp dụng ssl cho tất cả các yêu cầu đến cổng 8331 và 8332 như sau, tôi đã viết một đoạn mã chuyển hướng đến cổng 8330 của tomcat.
Tuy nhiên, vấn đề là nếu bạn truy cập 8330 thông qua nginx như thế này, NHẬN https://serverIP:8330/itf/subscribe net::ERR_SSL_PROTOCOL_ERROR
lỗi xảy ra.
/itf/subscribe hoạt động bình thường khi không có nginx.
Nhưng dường như có vấn đề khi gọi từ bên trong địa chỉ của https.
Tôi tự hỏi làm thế nào tôi có thể giải quyết vấn đề đó.
Trân trọng!