准备一个Linux服务器,Windows系统安装ssh连接工具,我是用的FinalShell
FinalShell官网下载
下载安装成功,点击左上角新增一个连接就可以连接上Linux服务器了
要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要。运行以下命令:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
安装 .NET 所需的组件,然后安装 .NET SDK。运行以下命令:
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1 #根据项目版本安装
因为上传到服务器很多时候都是压缩文件,安装解压缩软件unzip
yum install -y unzip zip
Visual Studio给core项目发布文件系统,给文件压缩后传到服务器解压
dotnet /home/wwwroot/WebApplication1.dll #WebApplication1.dll是项目dll
项目启动成功会如下显示
Hosting environment: Production
Content root path: /root/.dotnet/dotnet-apps/demo1/CoreDemo1
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
由于这是本地启动的只能在本地访问,所以使用了nginx配置代理
1:添加 Nginx 存储库
sudo yum install epel-release
2:安装 Nginx
sudo yum install nginx
3. 启动 Nginx
sudo systemctl start nginx
其他命令:
systemctl enable nginx #设置开机启动
systemctl disable nginx #禁止开机启动
systemctl status nginx #查看运行状态
systemctl restart nginx #重启服务
安装启动后,可以在当前服务器地址访问到nginx页面,接下来就是配置nginx代理了
首先拿到Nginx默认配置文件/etc/nginx/nginx.conf,
把默认80
端口转发配置server
节点用#
符注释掉。
第一行user nginx改为user root(由于权限不足访问静态文件,所以改为root)
然后,我们新建一个配置文件netcore.conf
,内容如下:
server {
listen 80;
#静态文件访问路径
location ~.*(js|css|png|gif|jpg)$ {
root /root/.dotnet/dotnet-apps/demo1/CoreDemo1/wwwroot/;
}
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 的配置加载目录/etc/nginx/conf.d
,最后执行命令nginx -s reload
重载 Nginx 配置,使其生效。
就可以在外网用服务器地址访问网站了,但是现在是用ssh工具启动的,断开网站就断开了
所以安装Supervisor supervisord官网
联网状态下,官方推荐首选安装方法是使用easy_install,它是setuptools(Python 包管理工具)的一个功能。所以先执行如下命令安装 setuptools:
yum install python-setuptools
执行如下命令安装 Supervisor:
easy_install supervisor
新增配置文件夹和文件
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改supervisord.conf文件,将文件尾部的配置为
[include]
files = /etc/supervisor/conf.d/*.conf 新增这个conf.d文件夹(这个路径下的文件就是你要启动的项目,可以多个)
本地新增编辑好一个conf文件,上传到/etc/supervisor/conf.d/目录下
[program:WebApplication1] ;自定义进程名称
command=dotnet WebApplication1.dll ;程序启动命令
directory=/home/wwwroot ;命令执行的目录
autostart=true ;在Supervisord启动时,程序是否启动
autorestart=true ;程序退出后自动重启
startretries=5 ;启动失败自动重试次数,默认是3
startsecs=1 ;自动重启间隔
user=root ;设置启动进程的用户,默认是root
priority=999 ;进程启动优先级,默认999,值小的优先启动
stderr_logfile=/var/log/WebApplication1.err.log ;标准错误日志
stdout_logfile=/var/log/WebApplication1.out.log ;标准输出日志
environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量
stopsignal=INT ;请求停止时用来杀死程序的信号
supervisord -c /etc/supervisor/supervisord.conf #启动supervisord
ps -ef | grep WebApplication1 #查看supervisord下运行的进程