所以我有這個 NGINX 組態檔:
events { }
http {
server {
listen 443 ssl;
ssl_certificate /home/dietpi/certs/cert.pem;
ssl_certificate_key /home/dietpi/certs/privkey.pem.key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:3001/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
}
它是 Docker 容器的反向代理。它為我做 SSL。我想將 HTTP 重定向到 HTTPS,所以我嘗試添加以下內容:
events { }
http {
server {
listen 80 default_server;
server _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /home/dietpi/certs/cert.pem;
ssl_certificate_key /home/dietpi/certs/privkey.pem.key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:3001/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
}
但現在它不起作用(sudo nginx -t失敗)。它是這樣說的:
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/nginx.conf:5
nginx: configuration file /etc/nginx/nginx.conf test failed
大多數遇到此錯誤的人往往http會將服務器塊放在一個塊中,而將其放在一個塊中可以修復它。但是……我的server街區已經在http街區中了。那么我該如何解決呢?
uj5u.com熱心網友回復:
錯別字server而不是server_name在server {}塊內
server {
listen 80 default_server;
server_name _; # ? corrected
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/399167.html
標籤:nginx https nginx-反向代理 nginx-配置
