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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

ASP.NET Core部署到Linux服务器(CentOS7 x64)

發布時間:2023/12/13 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core部署到Linux服务器(CentOS7 x64) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  本文主要講解如何一步步將ASP.NET Core網站發布到Linux服務器,文中會講解具體步驟及需要避免的各種問題。


?

目錄

  一、環境介紹

  二、創建及發布ASP.NET Core網站項目

  三、服務器軟件安裝(.NET Core SDK)

  四、在服務器上部署ASP.NET Core網站項目

  五、服務器端配置Nginx

  六、配置服務器端的守護進程(Supervisor)

  七、設置守護程序為開機自啟

?


?

環境介紹

  本機所需開發工具: vs2017、XShell 、FileZilla(不限定,可使用其他上傳工具)

  服務器系統及所需軟件:CentOS7、.Netcore、Nginx、Supervisor、Policycoreutils-python


?

創建及發布ASP.NET Core網站項目

  打開vs2017,選擇 文件->新建->項目,選擇ASP.NET Core Web應用程序(.NET Core),在ASP.NET Core 1.1 模板處選擇 Web應用程序

  

  

  此時ASP.NET Core 網站項目已建立完成,直接F5運行,可以在瀏覽器中看到如下頁面

  

  回到vs2017,右鍵項目->發布,選擇文件夾,文件夾名稱更改為MyWebCore(可以不更改,默認名為PulishOutput,默認路徑為bin\Release)點擊發布后,可以在發布時填寫的文件夾下找到發布的文件

  

  ASP.NET Core 網站發布完成,進行下一步


?

?服務器軟件安裝(.NET Core SDK)

?

  通過XShell登錄Linux服務

  執行下列命令,安裝.NET Core SDK(微軟官方教程地址?https://www.microsoft.com/net/core#linuxcentos)   

 sudo yum install libunwind libicu
 curl -SSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=843449sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -c /opt/dotnetsudo ln -s /opt/dotnet/dotnet /usr/local/bin

  執行下列命名,返回版本號即表示.NET Core SDK已經安裝成功   

 dotnet -–version

  

  .NET Core SDK安裝完成,進行下一步


在服務器上部署ASP.NET Core網站項目

  找到本地發布好的ASP.NET Core項目(bin\Release\MyWebCore),使用FileZilla(可以使用其他上傳工具)將MyWebCore文件夾整個上傳至服務器(具體上傳到什么位置可以自定義,此處使用/usr/myweb/文件夾)

  確保文件都成功上傳之后,就可以進行在Linux服務器的部署了

  執行下列命令,部署ASP.NET Core網站  

 cd /usr/myweb/MyWebCoredotnet MyWebCore.dll

  出現如下信息,即表示網址已部署成功

  

  (注:ASP.NET Core 默認端口為5000,可以在項目中通過配置自定義端口,此處不做過多介紹)

  此時是無法訪問到這個頁面的,需要部署一個web容器來進行轉發(即需要為Linux服務器配置Nginx)  

  ASP.NET Core網站部署完成,進行下一步


服務器端配置Nginx

  執行下列命令,安裝Nginx  

 curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmrpm -ivh nginx.rpmyum install nginx

  成功安裝Nginx之后繼續執行下列命令  

 systemctl start nginx //啟動Nginx
 systemctl enable nginx  //將Nginx設置為開機自啟

  執行下列命令,配置防火墻

 firewall-cmd --zone=public --add-port=80/tcp --permanent //開放80端口systemctl restart firewalld //重啟防火墻,使配置生效

  此時在瀏覽器輸入服務器IP地址,測試Nginx是否可以訪問

  

  Nginx可以正常訪問,接下來開始配置Nginx對我們所部署的ASP.NET Core應用的轉發

  找到Nginx配置文件nginx.conf(我的是在/ect/nginx/目錄下)下載到本地,并將其server{}中的內容進行如下修改(建議先備份)  

server {listen 80;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;} }

  將修改完成后的nginx.conf回傳至服務器進行覆蓋

  執行下列命令,使修改后的文件生效  

 nginx -s reload

  執行下列命令,啟動ASP.NET Core網站

 cd /usr/myweb/MyWebCoredotnet MyWebCore.dll

  瀏覽器輸入網址進行訪問

  如果出現502錯誤,執行下列命令,將Nginx添加至白名單,然后再重啟啟動ASP.NET Core  

 yum install policycoreutils-pythonsudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginxsudo semodule -i mynginx.pp

  

  Nginx配置完成,進行下一步


?

?配置服務器端的守護進程(Supervisor)

  為避免Shell退出后仍然可以繼續訪問網站,我們需要守護進程(Supervisor)來監控ASP.NET Core網站,以保證其長久健康的運行

  執行下列命令,安裝Supervisor  

 yum install python-setuptoolseasy_install supervisor

  執行下列命令,配置Supervisor 

 mkdir /etc/supervisor //此處也可以使用上傳工具手動創建文件夾 echo_supervisord_conf > /etc/supervisor/supervisord.confmkdir /etc/supervisor/conf.d

?

  修改supervisord.conf,對文件最后部分的內容進行修改

//原內容 ;[include] ;files = relative/dictory/*.ini //新內容  [include] files = conf.d/*.conf //此處也可以是*.ini //注意以上內容不要有;

  創建MyWebCore.conf文件(也可以是*.ini,需跟上一步保持一致),填寫如下內容  

[program:MyWebCore] command=dotnet MyWebCore.dll ; directory=/usr/myweb/MyWebCore ; autorestart=true ; stderr_logfile=/var/log/MyWebCore.err.log ; stdout_logfile=/var/log/MyWebCore.out.log ; environment=ASPNETCORE_ENVIRONMENT=Production ; user=root ; stopsignal=INT

  將MyWebCore.conf文件拷貝至下列目錄  

  /etc/supervisor/conf.d/

  執行下列命令,查看是否生效

supervisord -c /etc/supervisor/supervisord.conf ps -ef | grep MyWebCore

  

  如果存在 dotnet MyWebCore.dll進程,則表示運行成功

  配置文件如有修改,執行下列命令更新(沒有則忽略)  

  supervisorctl reload

  此處可能出現的問題(沒有則忽略)

  --重復的監聽,會提示如下錯誤       another program is already listening on a port that one of our HTTP servers is configured to use

   --解決方法  

ps -ef | grep supervisord //查看監聽的端口,出現以下信息 root 2503 1 0 Nov19 ? 00:03:23 /usr/bin/python /usr/bin/supervisord root 21337 2556 0 18:15 pts/8 00:00:00 grep --color=auto supervisord kill -s SIGTERM 2503  在瀏覽器中進行訪問

  

  守護進程Supervisor配置完成,進行下一步


?

?設置守護程序開機自啟

  如果服務器宕機,重新啟動后我們希望守護程序可以自啟,那么需要做以下操作

  新建supervisord.service文件,并寫入以下內容  

# dservice for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon[Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target

  將supervisord.service文件上傳至服務器下列目錄  

  /usr/lib/systemd/system/

  執行下列命令,將supervisor設為開機啟動  

  systemctl enable supervisord

  執行下列命令,驗證設置是否成功

  systemctl is-enabled supervisord

  返回enabled即為成功,可以執行重啟Linux服務器來進行驗證  

  reboot

  至此,ASP.NET Core網站部署到Linux服務器的操作全部完成。

?

轉載于:https://www.cnblogs.com/iamzl/p/7363766.html

總結

以上是生活随笔為你收集整理的ASP.NET Core部署到Linux服务器(CentOS7 x64)的全部內容,希望文章能夠幫你解決所遇到的問題。

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