欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

linux系统下使用nginx反向代理asp.net core,并配置免费的https证书

程序员文章站 2022-05-03 15:10:28
nginx反响代理asp.net core,配置https证书 ......

反向代理是为动态 web 应用提供服务的常见设置。 反向代理终止 http 请求,并将其转发到 asp.net core 应用。

 

1.在asp.net core项目中的startup的configure方法中配置中间键来转接 x-forwarded-for 和 x-forwarded-proto 标头

app.useforwardedheaders(new forwardedheadersoptions
{
    forwardedheaders = forwardedheaders.xforwardedfor | forwardedheaders.xforwardedproto
});

2.之后在本地将项目发布,在将发布后的文件复制到linux服务器上

3.运行项目

  这里介绍两种方法:

  (1)直接使用dotnet 命令运行程序   

表示在后台运行该应用

nohup dotnet [应用的dll] &

    ps : 想要停掉后台应用时: 先使用 netstat -lntp 找到进程的id,在使用kill -9 [id] 杀死该进程;

  

  (2)docker容器运行

    dockerfile

from microsoft/dotnet:2.2.0-aspnetcore-runtime
workdir /app
copy . /app
expose 5000/tcp
entrypoint ["dotnet" , "user.api.dll"]

    

构建镜像(将dockerfile文件放在linux服务器上的项目文件的根目录下)

docker build -t [镜像名] .  


启动容器
    -d : 表示该容器在后台运行
    -p :容器暴露的端口和要映射容器内应用的端口

docker run -d -p 5000:5000 --name [容器名] [镜像名]

    之后使用 docker ps 命令就可以查看到正在运行的容器

  

  当程序运行起来后,记得去你虚拟机云服务商管理界面把对应的端口打开,之后在外网使用ip就可以访问当页面了。(假如还是访问不了,那就在检查一下虚拟机内部的防火墙是否打开了,打开了就把防火墙给关了,一般来说就是这两个问题)

  

  4.安装nginx (根据你的linux系统,直接google一下就行了)

  5.修改nginx配置文件 /etc/nginx/sites-available/default ,使用 vim 命令打开

  

server {
    listen        80;  #nginx监听那个端口,记得也要去把80端口打开哟
    server_name   example.com *.example.com;  #域名填你的,网上也有许多免费的,去弄一个,再将本机的公网ip绑定上去
    location / {
        proxy_pass         http://localhost:5000;  #本地应用地址及端口,可以使用 curl 命令测试一下
        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-forwarded-proto $scheme;
    }
}

  将上面的内容替换进行,在保存退出即可 (不熟悉vim命令的也可以google学习一下)

  修改好上的defalut配置文件夹后,使用的 nginx -s reload重启一起nginx及可

  做到这一步就可以在外网直接使用ip进行访问了,不用加端口号,因为默认的就是80端口

  

  这里还有微软爸爸的文档可以看 

   

 6.在上面的步骤都顺利后就可以来配置https了

  免费的https证书 : 

  在首页选好你的反向代理服务器和linux版本后,就按照提示的命令行安装就行

  linux系统下使用nginx反向代理asp.net core,并配置免费的https证书

 

 

 

    linux系统下使用nginx反向代理asp.net core,并配置免费的https证书

 

 

 

  7.最后

  如果nginx出现问题了,比如:访问的时候出现 502 bad gateway,那我们就去 /var/log/nginx 文件夹下看看最近的error.log日志,将错误信息复制下来,google一下,一般都能找到解决方法的。