日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Nginx 配置内网访问树莓派4 ASP.NET Core 3.0 网站

發布時間:2023/12/4 asp.net 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 网站的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。