搭载Ubuntu18.04的服务器的ASP.Net Core的搭建以及使用VS2017上传网站的学习

1 篇文章 0 订阅
1 篇文章 0 订阅

要在远程服务器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服务器算是搭建好了,然后测试方式链接里都有的这里就不在阐述了。

如果在使用ftp上传时出现权限问题或者无法创建文件等情况,那很大可能就是服务器当前文件夹的权限不足,此时使用chmod命令提升权限,我一般直接给成777(所有权限),假设我要操作的文件夹是wwweb,举例如下:

sudo chmod 777 wwweb

到现在我们的运行环境也算是搭建好了,接下来我需要在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的部分内容)一来记录一下我的学习过程,二来帮助大家。

写的不太好,如果有不对的地方希望大家提出来,共同进步!

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值