我正在使用一个asp.net的核心应用程序,它调用函数app.UseHttpsRedirection();
和app.UseHsts();
,我可以将应用程序托管在ubunto服务器上,http的端口为5000,https的端口为5001。
现在我需要使用ngnix来托管它。这是我的配置:
server {
listen [::]:443 ssl default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name myServername;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
}
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-Proto $scheme;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
现在当我调用我的页面时,它将我转发到https://myServername:5001
,我需要将此端口更改为https 443的标准端口。
应该怎样做呢?
请注意,我已经在www.example.com应用程序中添加了我的证书asp.net。
2条答案
按热度按时间oxiaedzo1#
我可以解决的。我的错误是:
1.无需asp.net在开始时在www.example.com应用程序中加载证书。
1.从代码中删除
app.UseHttpsRedirection();
。1.在ngnix服务器上加载证书。
以下链接很有用:https://github.com/tonysneed/Demo.AspNetCore-Nginx-Ssl
gcuhipw92#
我用nginx指向普通的http
localhost:5000
,像往常一样,然后使用certbot来保护连接。我不知道为什么,但可能是在.Net更新后,它开始从我的域重定向到***.5001
,当然会引发错误。应用程序在相同的设置下工作了1年,没有任何问题。我也在git历史记录中检查了它,有
app.UseHttpsRedirection();
。我回滚,检查,它开始工作,昨晚再次运行dotnet更新,它导致了307
重定向的问题。我不知道为什么两个版本的.Net工作原理不同,但
/*app.UseHttpsRedirection();*/
做到了这一点。