1. 在发布项目之前,将项目的端口进行配置,如5000:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
//配置访问端口
.UseUrls("http://*:5000");
}
http://*:5000路径匹配很多路径,如localhost:5000 , 127.0.0.1:5000 , ip:5000
2. 配置CentOS的文件上传功能
安装开启vsftpd
#安装ftp功能
yum install -y vsftpd
#启动ftp功能
systemctl start vsftpd
#配置开机启动
systemctl enable vsftpd
修改配置
#打开配置文件
vi /etc/vsftpd/vsftpd.conf
#禁用匿名用户
anonymous_enable=NO
创建ftp用户及配置密码,修改权限
#创建用户
useradd -d /var/www -s /sbin/nologin userName
#修改密码
passwd userName
#配置权限
chmod 777 /var/www
配置防火墙,开放文件上传功能
#开放ftp功能
firewall-cmd --add-service=ftp --permanent
#重启防火墙
firewall-cmd --reload
关闭SELinux内核
#查看内核状态
sestatus
#关闭内核
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
#重启系统
reboot
3. 安装.Net Core SDK
#获取资源
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
#更新yum
sudo yum -y update
#安装SDK
sudo yum -y install dotnet-sdk-2.1
#检测效果
dotnet --version
4. 配置Nginx
安装Ngixn反向代理
#获取资源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#安装nginx
sudo yum -y install nginx
启动nginx,设置开机启动
#启动nginx
sudo systemctl start nginx
#nginx开机启动
sudo systemctl enable nginx
防火墙开放80端口
#防火墙开放80端口
firewall-cmd --add-port=80/tcp --permanent
#重启防火墙
firewall-cmd --reload
新增配置文件夹
#新增文件夹
sudo mkdir /etc/nginx/server
#打开默认配置文件
sudo vi /etc/nginx/nginx.conf
#在http属性下增加:
include /etc/nginx/server/*.conf;
新增配置文件
#新建配置文件
sudo vi /etc/nginx/server/default.conf
#配置如下所示
server {
listen 80; #监听端口
server_name www.aa.com; #监听的域名
location / { #转发
proxy_pass https://localhost:5000;
}
error_page 500 502 503 504 /50x.html; #错误页
location = /50x.html {
root /usr/share/nginx/html;
}
}
关于负载均衡
upstream serverswitch {
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
server {
listen 80; #监听端口
server_name www.aa.com; #监听的域名
location / { #转发
proxy_pass https://serverswitch;
}
error_page 500 502 503 504 /50x.html; #错误页
location = /50x.html {
root /usr/share/nginx/html;
}
}
5. 将项目发布到本地
右键项目---发布---发布到文件夹
6. 在系统上创建目录,修改权限
#项目根目录
sudo mkdir -p /webroot/helloworld
#应用目录
sudo mkdir -p /webroot/helloworld/app
#日志目录
sudo mkdir -p /webroot/helloworld/logs
#修改读写权限
sudo chmod 777 /webroot/helloworld/app
sudo chmod 777 /webroot/helloworld/logs
7. 配置启动关闭脚本
启动脚本配置
#创建启动脚本
sudo vi /webroot/helloworld/start.sh
#以下是脚本内容
#!/bin/sh
cd $(cd "$(dirname "$0")"; pwd)
APP_NAME=HelloWorld.dll #这里是项目主类库
echo "start begin..." #向命令行发出提示
echo $APP_NAME
cd app
nohup dotnet $APP_NAME >>../logs/info.log 2>>../logs/error.log &
cd ..
sleep 5
if test $(pgrep -f $APP_NAME|wc -l) -eq 0
then
echo "start failed"
else
echo "start successed"
fi
关闭脚本
#创建关闭脚本
sudo vi /webroot/helloworld/stop.sh
#以下是脚本内容
#!/bin/sh
cd $(cd "$(dirname "$0")"; pwd)
APP_NAME=HelloWorld.dll #项目主类库
PROCESS=`ps -ef|grep $APP_NAME|grep -v grep |awk '{ print $2}'`
while :
do
kill -9 $PROCESS > /dev/null 2>&1
if [ $? -ne 0 ];then
break
else
continue
fi
done
echo 'stop success!'
8. 配置开机启动
#将停止脚本的执行权限开启
sudo chmod +x /webroot/helloworld/stop.sh
#创建服务
sudo vi /usr/lib/systemd/system/helloworld.service
#以下是文件的内容
[Unit]
Description=helloworld
After=network.target
[Service]
WorkingDirectory=/webroot/helloworld/app
ExecStart=/usr/bin/dotnet /webroot/helloworld/app/helloworld.dll
ExecStop=/webroot/helloworld/stop.sh
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
配置服务开机启动
#设置服务开机启动
sudo systemctl enable helloworld
#启动服务
sudo systemctl start helloworld