搭載Ubuntu18.04的服務器的ASP.Net Core的搭建以及使用VS2017上傳網站的學習

要在遠程服務器Ubuntu18.04上運行ASP.Net,第一步需要搭建運行環境

主要參考:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial#ubuntu

首先安裝源

wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

然後安裝.Net SDK

sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

然後檢查一下:

dotnet --version

執行這條命令如果打印出了版本號說明安裝成功了,我的版本是2.2.102

然後由於我們需要在雲端服務器上搭建,所以需要將本地的文件上傳到服務器端,這裏我使用ftp

第二步:Ubuntu18.04搭建ftp服務器

這裏參考:https://blog.csdn.net/zxw136511485/article/details/79460671

                 https://www.cnblogs.com/xuanxufeng/p/6235494.html

首先安裝vsftpd

sudo apt-get update
sudo apt-get install vsftpd

然後配置vsftpd,編輯/etc/vsftpd.conf這個文件

添加如下內容(至於這些什麼意思可以參考上面的兩個鏈接)

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
write_enable=YES
utf8_filesystem=YES

然後創建一個名爲allowed_users的文件,這個文件裏的內容就是你需要ftp傳輸的用戶名稱

vim /etc/allowed_users

(vim編輯器在打開一個不存在的文件時會自動創建該文件)

然後保存,接着重啓服務:

sudo /etc/init.d/vsftpd restart

如果沒問題,那我們的ftp服務器算是搭建好了,然後測試方式鏈接裏都有的這裏就不在闡述了。

到現在我們的運行環境也算是搭建好了,接下來我需要在windows10環境下使用VS2017來發佈一個ASP.Net Core應用程序到我們的遠程服務器上去

第三步:windows10中VS2017環境中:

首先新建一個項目如圖,接着選擇一個web窗體應用程序然後打開,默認會有一個示例網站,所以我們不需要寫什麼,直接發佈我們的網站

由於我們使用的是ftp,所以直接選擇使用ftp進行發佈(這裏有個細節沒有說,我在服務器端創建了一個文件夾來保存我上傳的網站)

然後保存,接着點發布,等待一定時間,網站就發佈出去了!

網站發佈完成後我們就可以在該目錄下使用以下命令來啓動我們的網站(我的網站名字是Hello_WebApplication)

dotnet Hello_WebApplication.dll

注意1:如果你使用的是dotnet run命令出現了一下這個問題:

Couldn't find a project to run. Ensure a project exists in /home/mine_web/wwweb/myfirstweb, or pass the path to the project using --project.

那麼問題和解決方法在這裏:https://stackoverflow.com/questions/51926016/trying-to-run-a-net-core-helloworld-console-app-on-ubuntu

注意2:如果使用上面的命令出現如下警告,此時網站不能被正常打開:

Microsoft.AspNetCore.Server.Kestrel[0]
      Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.

Microsoft.AspNetCore.Server.Kestrel[0]
      Unable to bind to https://localhost:5001 on the IPv6 loopback interface: 'Cannot assign requested address'.

此時使用這個命令解決:

dotnet Hello_WebApplication.dll --server.urls http://127.0.0.1:5000

這裏參考了:https://cloud.tencent.com/developer/ask/23273

到這裏我們的網站還不算完,這樣做下來,只是能在服務器中訪問,外網是不能訪問的,所以我們還需要nginx反向代理:

第四步:nginx反向代理的安裝和配置

sudo apt-get install nginx

配置

sudo vim /etc/nginx/sites-available/default

將這個配置文件內的這部分內容替換或者直接添加到最後,如下:

server {
    listen 80;
    server_name www.your_domain_name.com;
    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即可:

sudo nginx -t
sudo nginx -s reload

此時就可以實現在外網使用域名或者ip地址去訪問這個示例了。

唉,老實說我是小白一枚,就這一點點過程差點折磨死我,各種問題百出,相信有人和我一樣也是入門,特此記錄下這些內容(當然這裏沒有記錄ssl的部分內容)一來記錄一下我的學習過程,二來幫助大家。

寫的不太好,如果有不對的地方希望大家提出來,共同進步!

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章