一:为什么换成linux?
由于种种原因,比如觉得安装个ssl证书比较麻烦、比如这次服务器到期,不准备使用国内服务器,不想备案,香港服务器windows比linux贵、windows必须起步必须购买1核2G,linux选择1核1G暂时也能够满足需要。
二:服务器购买
阿里云和腾讯云都一样,任意选择一个,个人用一般只要买一个轻量云,基本够用。从阿里云换到腾讯云,最近又从腾讯云换到阿里云。觉得还是阿里云便宜,阿里云mysql 最低配置3年只要700,腾讯云1年就要1000。 所以又换了回来。
阿里云:https://www.aliyun.com/activity/1111/newuser1st?userCode=1vqzj9qj
腾讯云:https://curl.qcloud.com/t8vLvWQn
三:宝塔安装
1:服务器连接
直接在服务器列表点击登录,一直点,到登录进命令行为止。
2:安装宝塔
可以按照linux下的立即安装按钮查看详细教程,简单的命令就是几句。
安装宝塔面板:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
只要一直选yes,确认,回车就能完成安装。
最后可以看到请求地址和用户名密码,登录进去之后在面板设置里面可以更换端口之类的操作,更换端口后需要进入腾讯云-服务器-更多-安全组-对应的安全组下的入站规则添加一条端口允许记录。
四:.net core程序部署
1:环境安装
依次执行命令,
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install aspnetcore-runtime-2.1
后面的就是版本,可以自己任意填写需要的,比如2.2,2.6,3.1
2:网站创建
宝塔面板的文件下找到对应目录去创建一个文件夹,将发布的.net文件全部拷贝到文件夹下。
网站里面点击添加站点,只需要填写域名和文件夹目录,直接保存。
可以设置一个SSL证书。
反向代理添加一条记录,url设置为 http://localhost:5001
默认.net core程序部署都是5000端口,因为个人使用一般一台服务器会有多个站点,所以需要手动设置端口。
五:守护进程设置
linux服务起重启需要自动启动.net core程序,所以需要相关设置。
超级简单,不需要像其他教程一样各种下载,创建配置文件,只要在宝塔面板-软件商店-Supervisor管理器,安装好之后进入设置,点击添加守护进程,名称随意,启动用户root,运行目录自己选择创建的文件夹,确保项目.dll文件所在的文件夹,启动命令 dotnet 项目.dll。
进入子配置文件修改对应行, command=dotnet 项目.dll --urls="http://*:5001" 后面的--urls意思就是将启动端口改成5001
六:遇到的唯一问题
项目中有个根据ip请求腾讯api接口,获取ip所在地。
结果发现windows服务器可以请求,换成linux就返回空。
尝试将服务器所有端口打开,无效。
修改请求类为httpclient、RestSharp、HttpWebRequest都一样的结果。
最后修改的第五步的子配置文件,添加了一行environment=DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0
最后能够访问,但是只是临时方案,准备再研究研究。
还没有评论,来说两句吧...