linux系统下使用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.-aspnetcore-runtime
WORKDIR /app
COPY . /app
EXPOSE /tcp
ENTRYPOINT ["dotnet" , "User.API.dll"]
构建镜像(将Dockerfile文件放在linux服务器上的项目文件的根目录下) docker build -t [镜像名] . 启动容器
-d : 表示该容器在后台运行
-p :容器暴露的端口和要映射容器内应用的端口 docker run -d -p : --name [容器名] [镜像名]
之后使用 docker ps 命令就可以查看到正在运行的容器
当程序运行起来后,记得去你虚拟机云服务商管理界面把对应的端口打开,之后在外网使用ip就可以访问当页面了。(假如还是访问不了,那就在检查一下虚拟机内部的防火墙是否打开了,打开了就把防火墙给关了,一般来说就是这两个问题)
4.安装nginx (根据你的linux系统,直接google一下就行了)
5.修改nginx配置文件 /etc/nginx/sites-available/default ,使用 vim 命令打开
server {
listen ; #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证书 : https://certbot.eff.org
在首页选好你的反向代理服务器和linux版本后,就按照提示的命令行安装就行
7.最后
如果nginx出现问题了,比如:访问的时候出现 502 bad Gateway,那我们就去 /var/log/nginx 文件夹下看看最近的error.log日志,将错误信息复制下来,google一下,一般都能找到解决方法的。
linux系统下使用nginx反向代理asp.net core,并配置免费的https证书的更多相关文章
- Nginx反向代理+负载均衡简单实现(手动申请https证书,申请免费https证书,http强转https)
背景:A服务器(192.168.1.8)作为nginx代理服务器B服务器(192.168.1.150)作为后端真实服务器 现在需要访问https://testwww.huanqiu.com请求时从A服 ...
- Nginx 反向代理 负载均衡 虚拟主机配置
Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...
- 【转】Nginx 反向代理 负载均衡 虚拟主机配置
原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...
- nginx 反向代理 与 Apache backend的配置联合配置
nginx 反向代理 与 Apache backend的配置联合配置: 说明: nginx 将http映射到Apache上的特定子目录. 配置方法步骤: 1. 设置域名, 子域名映射到指定服务器ip ...
- Nginx 反向代理工作原理简介与配置详解
Nginx反向代理工作原理简介与配置详解 by:授客 QQ:1033553122 测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...
- Linux 下的 Nginx 反向代理配置.
最近实践中遇到了需要利用 nginx 进行反向代理服务器请求的需求,以前没怎么碰触过,因此花了1个多小时,快速阅览了一下nginx官网在反向代理服务中给出的基本定义: 说实话,官网给予的定义是精准的, ...
- 利用DockerHub在Centos7.7环境下部署Nginx反向代理Gunicorn+Flask独立架构
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_165 上一篇文章:Docker在手,天下我有,在Win10系统下利用Docker部署Gunicorn+Flask打造独立镜像,是在 ...
- [nginx]Windows和Mac下,nginx反向代理服务器配置
最近做项目,前端需要用到nginx反向代理来转发请求,总结了一下在Windows和Mac上的配置,以备查询. 一.Windows 修改nginx的配置文件,nginx.conf. 1)nginx.co ...
- 【Todo】秒杀系统 & 乐观锁 & Nginx反向代理
http://www.csdn.net/article/2014-11-28/2822858 1. 单点帐号验证,不用读,而是用写入,Redis,看是否加watch 2. 抢宝的最终购买冲突.包装称“ ...
随机推荐
- ThinkPHP删除目录及目录下文件的函数【转】
1.删除目录及目录下所有的文件 2.删除目录下的所有文件但目录结构保留 3.删除指定文件 贴代码 /** +---------------------------------------------- ...
- Linux下对input设备调用ioctl时指定EVIOCGBIT选项时的缓冲区该多大【转】
转自:https://blog.csdn.net/imred/article/details/82669990 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出 ...
- TEE(Trusted Execution Environment)简介【转】
转自:https://blog.csdn.net/fengbingchun/article/details/78657188 TEE(Trusted Execution Environment),可信 ...
- if语句编写Mysql备份脚本
#!/bin/bash #auto bakcup mysql db #by authors zgh #define backup path BAK_DIR=/data/backup/`date +%Y ...
- Linux终端执行shell脚本,提示权限不够
在学习dubbo过程中,上传自己写的脚本,执行的时候提示“权限不够”,从网上了解到是因为没有为脚本赋权限 解决方法是使用chmod命令为shell脚本赋予权限 chmod 777 ./service- ...
- 201871020225-牟星源《面向对象程序设计(java)》第十周学习总结
201871020225-牟星源<面向对象程序设计(java)>第十周学习总结 博文正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu- ...
- Java虚拟机所管理的内存,包含的运行时数据区域?
运行时数据区域 线程私有(随用户线程的启动和结束而建立和销毁)或所有线程共享(随虚拟机进程的启动而存在) 抛出的异常 备注 程序计数器(Program Counter Register) 线程私有 唯 ...
- 【Spring Data JPA篇】项目环境搭建(一)
项目环境: spring4.1.6 hibernate4.3.11 spring-data-jpa1.9.0 1. 创建一个Java Project,将jar导入到lib目录下 #spring spr ...
- Kettle Unable to get list of element types for namespace 'pentaho'
我把公司的kettle5.0升级到7.0之后遇到了这个问题,困扰了很久,百度谷歌都查不到结果,所以只能自己查找原因. 由于已经被搞好了,现在无法截图了,总之就是下面这行报错,遇到这个错误的同学估计也不 ...
- Xamarin.Forms移动开发系列3:项目剖析
摘要 本文主要进行Xamarin.Forms应用程序剖析. 前言 本文介绍Xamarin.Forms应用程序剖析. 由于本系列重点研究对象为Xamarin.Forms,所以对Xamarin.Andro ...