如何从www.example.com应用程序在nginx上重定向后删除https端口asp.net

mrfwxfqh  于 2023-02-06  发布在  .NET
关注(0)|答案(2)|浏览(99)

我正在使用一个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。

oxiaedzo

oxiaedzo1#

我可以解决的。我的错误是:
1.无需asp.net在开始时在www.example.com应用程序中加载证书。
1.从代码中删除app.UseHttpsRedirection();
1.在ngnix服务器上加载证书。
以下链接很有用:https://github.com/tonysneed/Demo.AspNetCore-Nginx-Ssl

gcuhipw9

gcuhipw92#

我用nginx指向普通的http localhost:5000,像往常一样,然后使用certbot来保护连接。我不知道为什么,但可能是在.Net更新后,它开始从我的域重定向到***.5001,当然会引发错误。
应用程序在相同的设置下工作了1年,没有任何问题。我也在git历史记录中检查了它,有app.UseHttpsRedirection();。我回滚,检查,它开始工作,昨晚再次运行dotnet更新,它导致了307重定向的问题。
我不知道为什么两个版本的.Net工作原理不同,但/*app.UseHttpsRedirection();*/做到了这一点。

相关问题