Nginx 配置内网访问树莓派4 ASP.NET Core 3.0 网站
喜迎国庆
点击上方蓝字关注“汪宇杰博客”
导语
前几天发了两篇《
能跑就行:Kestrel Hosting
如果你的要求只是临时内网访问,可以只用 Kestrel 来承载 Web 服务器,只需要给 dotnet 命令一个 --urls 参数即可设置允许访问的主机名和端口号。我不希望限制主机名,所以这里我用了 *。
dotnet Empower.dll --urls "http://*:8080"
现在,你的内网机器就能访问树莓派上的网站了:
但是这种方式有一定的缺点。比如你的代码写爆了,只要一个exception,dotnet 进程就会结束,你必须手工重启才能继续使用网站。而且 Kestrel 的功能远没有正常的Web服务器强大。因此,在更真实的环境里,我们还是要通过正常的Web服务器(如Nginx)做反向代理,并能自动重启dotnet进程。
使用 Nginx + systemd
首先,安装并启动ngix
sudo apt-get install nginx
sudo /etc/init.d/nginx start
打开配置文件
sudo nano /etc/nginx/sites-available/default
替换为以下内容
server {
listen 80 default_server;
server_name _;
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-Forwarded-Proto $scheme;
}
}
其中 server_name 设置为 _; 的意思也是不限制主机名访问。proxy_pass 对应的是 Kestrel 的默认终端地址。
应用设置
sudo nginx -t
sudo nginx -s reload
现在,启动你的 ASP.NET Core 网站,应该能在内网用80端口访问了。
dotnet Empower.dll
现在,我们还有最后一步,就是让 dotnet 进程一爆就自动重启,这可以借助 systemd 服务实现。
sudo nano /etc/systemd/system/kestrel-empowerapp.service
内容如下
[Unit]
Description=ASP.NET Core 3.0 App - Empower
[Service]
WorkingDirectory=/home/pi/dotnet-playground/empower/portable-fdd
ExecStart=/home/pi/dotnet-arm32/dotnet /home/pi/dotnet-playground/empower/portable-fdd/Empower.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-empower
User=pi
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
注意,systemd 要求我们使用绝对路径。
注册,并启动服务:
sudo systemctl enable kestrel-empowerapp.service
sudo systemctl start kestrel-empowerapp.service
sudo systemctl status kestrel-empowerapp.service
现在,试试重启你的树莓派,网站会自动启动,局域网80端口也能访问,代码爆了也能自动重启服务!
关于更详细的配置,可以点击【阅读原文】参考微软官方文档。
Nginx 配置内网访问树莓派4 ASP.NET Core 3.0 网站相关推荐
- Nginx实现 内网访问外网https页面资源的解决方案
项目场景: 在开发过程中,有遇到在内网环境下 需要访问外网 https页面.遇到这个需求也是比较不好做.经过查询资料和调试最终完成功能. 问题描述 解决思路 : 通过 nginx 反向代理来实现 原因 ...
- 使用frp配置内网访问(穿透)教程(超详细,简单)
1 Frp介绍 frp 是一个开源.简洁易用.高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议.frp 项目官网是 https://github.com/fate ...
- 使用cpolar配置内网访问(内网穿透)教程(超详细,简单)
目录 一.什么是cpolar? 二.它能用在哪些场景? 三.一些很棒的功能 四.cpolar高级套餐 五.如何使用? 1.下载cpolar软件安装包 2.注册cpolar账号 3. 登录账号,并拿到隧 ...
- 阿里云oss 使用, 基于Nginx 配置云服务器+oss的内网访问 , 及使用Java SDK 完成上传,下载,删除,查询文件列表操作
一.同阿里产品,云服务器和存储对象oss-配置内网访问 阿里存储对象oss 地址: https://oss.console.aliyun.com/overview 配置须知 通过Nginx 进行网络转 ...
- 使用frp配置内网穿透
1.服务端配置 服务端即在公网环境下的服务器,需配置frps服务 1.1 下载frp 下载地址是https://github.com/fatedier/frp/releases,要注意下载的版本,由你 ...
- Amazing ASP.NET Core 2.0
前言 ASP.NET Core 的变化和发展速度是飞快的,当你发现你还没有掌握 ASP.NET Core 1.0 的时候, 2.0 已经快要发布了,目前 2.0 处于 Preview 1 版本,意味着 ...
- lnmp 配置nginx 实现内网/本地域名
需求:微服务 客户端服务器 需要内网访问 api接口服务器 解释:传统的外部网址(比如二级域名)也能实现,但是不安全,于是采用内网域名的形式 实现步骤: 1.nginx解析域名 _innerapi.s ...
- Nginx代理内网服务器访问外网
Nginx代理内网服务器访问外网 1.SpringBoot工程配置文件改写 2. SpringBoot静态工具类注入配置文件变量 3. SpringBoot 使用 4. 配置Nginx 问题描述: 有 ...
- 局域网使用树莓派配置内网穿透
使用frp配置内网穿透 硬件设施:centos 主机 树莓派4b 下载对应的frp 下载地址 https://github.com/fatedier/frp/releases 我下载的分别是 对应的压 ...
最新文章
- 验证车牌号码是否有效
- .NET Core实战项目之CMS 第十七章 CMS网站系统的部署
- linux-basic(7)linux文件与目录管理
- Fedora 17 下 Samba 服务快速设置
- java学习(142):file类的基本创建
- 《深入理解Java虚拟机》——垃圾收集器的具体实现
- linux下最好的ftp服务器,用Linux系统构建高效FTP服务器
- java g1的并行_Java 11好用吗
- Spring学习总结(5)——IOC注入方式总结
- 2021年,彩票店还开的下去吗?
- 商厂里调货拿包包程序
- GARFIELD@10-21-2004
- RPM打包原理、示例、详解及备查( 转)
- Python 数据科学手册
- Moviebooking电影售票系统--用例建模
- [开源之美] nanomsg -- 进程间通讯
- sinx/cosx的泰勒展开式与库函数的比较
- [生存志] 第96节 南华著真经
- 一个复数可以用实部和虚部两部分组成,a1 = 1.2 + 3.4i,其中1.2是实部,3.4是虚部。定义一个结构体ComplexNumber,包含imaginary和real两个成员变量,能够表示
- matlab能否算高中数学题,Matlab软件在高中数学学习中的应用
热门文章
- iphone4 短信截获
- zoj2271 Chance to Encounter a Girl(DP)
- java两个数之间质数求法,求任意两个整数之间质数的个数的代码!!!(新手编写)...
- 迷茫在路口——致我的2014
- mac屏幕截图_如何在Mac上拍摄屏幕截图
- 火狐 新增标签 一直加载_在Firefox的新标签页中加载最后标签页的URL
- CC框架实践(1):实现登录成功再进入目标界面功能
- javascriptjquery 判断滚动到页面底部
- 使用 HP 3PAR Peer Persistence 实现 vSphere Metro Storage Cluster (vMSC)
- MySQL - Found option without preceding group in config file