我正在嘗試在 Nginx 上部署 blazor 服務器模板應用程式,但我遇到了這個問題。我嘗試了所有我能在網上找到的東西,但仍然是同樣的錯誤。
error.log *36 upstream 在從上游讀取回應頭時過早關閉連接,client:, server:, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:7155/"
如果有幫助,瀏覽器只顯示 502 代碼
這是我的 nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
這里的服務器塊位于/sites-enabled/
server {
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
location / {
proxy_pass http://dotnet;
proxy_set_header Host $host;
proxy_http_version 1.1; # you need to set this in order to use params below.
proxy_temp_file_write_size 64k;
proxy_connect_timeout 10080s;
proxy_send_timeout 10080;
proxy_read_timeout 10080;
proxy_buffer_size 64k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_redirect off;
proxy_request_buffering off;
proxy_buffering off;
}
}
upstream dotnet {
zone dotnet 64k;
server 127.0.0.1:7155;
}
我不知道我做錯了什么。請幫忙
uj5u.com熱心網友回復:
基于此,我做了一些關于如何在 Nginx 上部署 Blazor 服務器應用程式的筆記。我分享并希望有所幫助。
安裝 nginx 并啟動它:
sudo apt-get install nginx
sudo service nginx start
現在您需要對其進行配置,以便將到達埠 80 的請求傳遞到埠 5000 上的應用程式。為此,請在您喜歡的編輯器中打開 /etc/nginx/sites-available/default 檔案。默認配置只定義了一臺服務器,監聽80埠。在該服務器下,查找以location /開頭的部分:這是該服務器上根路徑的配置。將其替換為以下配置:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
proxy_pass http://localhost:5000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
這應該可以防止連接恢復到長輪詢。重新加載 nginx:
sudo nginx -s reload
下面default看起來/etc/nginx/sites-available/像這樣:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
proxy_pass http://localhost:5000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
有關如何部署的Miscrosoft參考。
uj5u.com熱心網友回復:
我剛剛解決了這個問題,服務器塊正在重定向到 ssl,但是當我呼叫上游時我沒有使用 https!
為了解決我只是改變
proxy_pass http://dotnet;
至
proxy_pass https://dotnet;
現在一切正常。
我希望這可以幫助更多的人,因為我在這方面浪費了太多時間......
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/535056.html
標籤:nginxblazor 服务器端
下一篇:過去最后修改的快取控制標頭
