一、后台服务器部署(CentOs 8 & .net 6.0)
Ⅰ 安装MySQL
1h1ttps:1//1blog.csdn.net/qq_36582604/article/details/80526287
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就开始安装MySQL。
[root@localhost ~]# yum -y install mysql
[root@localhost ~]# yum -y install mysql-server
至此MySQL就安装完成了,然后是对MySQL的一些设置。
2. MySQL数据库设置
首先启动MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL运行状态,运行状态如图:
[root@localhost ~]# systemctl status mysqld.service
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
这里的路径可能有所不同,自己可以cd看一看,只要找到mysqld.log即可。可能有初始密码也可能没有,如果没有的话,后面的操作中输入密码时,直接回车即可。
[root@localhost ~]# grep "password" /var/log/mysqld.log
如下命令进入数据库:
[root@localhost ~]# mysql -u root -p
输入初始密码(是上面图片最后面的 no;e!5>>alfg),此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功。
3. 开启mysql的远程访问
执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.0.1,如要开启所有的,用%代替IP):
mysql> grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;
此处,如果安装的mysql版本大于8.0则改用下面语句。
mysql> create user root@'192.168.0.1' identified by 'password'; grant all privileges on *.* to root@'%' with grant option;
然后再输入下面两行命令
mysql> flush privileges;
mysql> exit
4. 为firewalld添加开放端口
先查看防火墙状态
[root@localhost ~]# systemctl status firewalld.service
如果未开启,则
[root@localhost ~]# systemctl start firewalld.service
添加mysql端口3306和Tomcat端口8080
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
然后再重新载入
[root@localhost ~]# firewall-cmd --reload
均返回 success 即可。
5. 验证
已完成,然后可用 navicat 等工具,直接创建连接尝试,成功则妥。
Ⅱ 安装 Git
1h1ttps:1//www.cnblogs.com/huyong/p/14291812.html
1. 安装git客户端
执行如下命令:
[root@localhost ~]# yum -y install git
2. 生成sshkey
这里的xx@xxx.com只是生成的sshkey的名称,并不约束货要求具体命名为某个邮箱。
[root@localhost ~]# ssh-keygen -t rsa -C "xx@xxx.com"
按照提示,按三次回车,即可生成sshkey,如下图所示:
[root@localhost ~]# cat ~/.ssh/id_rsa.pub
复制生成后的sshkey,配置到代码仓库的公钥中。
3. 配置 github 仓库的公钥
- 接下来我们将学习如何在 github 代码托管平台下配置公钥。
- 科学上网,进入github,点击右上角头像,下拉中的Settings,点击左侧 "SSH and GPG keys",再点击中间列的 "New SSH key",将刚刚生成的公钥复制过去,确定即可。
- 回到XShell界面,执行下面命令,回车输入yes再回车,出现类似于Hi xxx的字样,则表示git公钥配置成功了。
[root@localhost ~]# ssh -T git@github.com
Ⅲ 安装 .NET Core SDK 与 运行时
- .NET运行时是.NET程序运行的先决条件,而SDK并不是必须的,但如果通过git方式进行文件中转的话,就需要到在服务器端进行编译,所以SDK也需要安装。
- 在安装 .NET 之前,我们需要将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。
- 运行如下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。
[root@localhost ~]# sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
- 通过如下命令安装SDK:
[root@localhost ~]# sudo yum install -y dotnet-sdk-6.0
- .NET Core SDK 使你可以通过 .NET Core来 开发我们的应用。
- 安装完成后,可以验证安装。
[root@localhost ~]# dotnet --info
- 通过如下命令安装netcore运行时:
[root@localhost ~]# sudo yum install -y aspnetcore-runtime-6.0
Ⅳ 发布程序到服务器
- 首先,将代码推送到git仓库中,复制SSH地址。如下图所示:
- 然后在服务器中,执行克隆命令:
mkdir core60test
cd core60test
git clone git@gitee.com:******/core60test.git
- 此时项目代码已经下载到服务器中,切换工作目录到解决方案所在的目录。
cd core60test
- 然后执行dotnet publish命令对程序进行编译发布。
dotnet publish -o /xxxx/publish
- 执行完毕后,编译发布后的文件将被保存在/xxxx/publish目录中。
- 将工作目录切换到/xxxx/publish,执行如下命令,即可在后台运行在指定端口。
nohup dotnet core60test.dll --urls="http://*:端口号" --environment=Delopment > /dev/null 2>&1 &
这里使用后台进程,关闭Xshell也不会关闭站点,在当前进程,停止站点直接使用Ctrl+c,否则需要找出进程ID,然后KILL进程。
nohup
:不挂起的意思
--environment=Delopment
:运行环境
/dev/null
:/dev/null相当于执行了command 1 > /dev/null。执行command产生了标准输出stdout(用1表示),重定向到/dev/null的设备文件中。/dev/null可以理解为/dev路径下的空文件;该命令将command命令的标准输出输出到空文件中
2>&1
:可以理解为执行command产生的标准输出重定向到文件中,标准错误也重定向到文件中,期间只打开一次文件,&1的含义就可以理解为用标准输出的引用,引用的就是重定向标准输出产生打开的文件。
注意:后台进程虽然可以再Xshell关闭后还能运行,但是当系统关机重启后,进程就没有了,这个时候还是需要手动启动,所以下一篇文章将会介绍为dotnet创建守护进程的方式来保证开机就能访问站点
Ⅴ 验证
此处已经完成第一段操作,可以用postman去请求以测试。此处可能会因为服务器所属平台的安全组相关原因,导致端口相关问题,之前也提过了。
二、Nginx 服务器部署(1.14.1)
1h1ttps:1//www.jianshu.com/p/9b2dd37a5af9
最好是单独一台服务器,此处演示的是在另一台服务器。
Ⅰ 安装 Nginx
[root@localhost ~]# sudo yum install nginx
安装完成后,使用以下命令启用并启动Nginx服务:
[root@localhost ~]# sudo systemctl enable nginx
[root@localhost ~]# sudo systemctl start nginx
要验证服务是否正在运行,请检查其状态:
[root@localhost ~]# sudo systemctl status nginx
Ⅱ 调整防火墙
- FirewallD是Centos 8上的默认防火墙解决方案。
- 在安装过程中,Nginx使用预定义的规则创建防火墙服务文件,以允许访问HTTP(80)和HTTPS(443)端口。
- 使用以下命令永久打开必要的端口:
[root@localhost ~]# systemctl start firewalld.service
[root@localhost ~]# sudo firewall-cmd --permanent --zone=public --add-service=http
[root@localhost ~]# sudo firewall-cmd --permanent --zone=public --add-service=https
[root@localhost ~]# sudo firewall-cmd --reload
Ⅲ 验证
- 此处依然需要查看服务器所在平台安全组是否开放相关端口。
- 然后,可以直接外网访问 http://你的IP地址 来验证是否成功。
nginx的配置文件在/etc/nginx/nginx.conf
自定义的配置文件放在/etc/nginx/conf.d
项目文件存放在/usr/share/nginx/html/
日志文件存放在/var/log/nginx/
还有一些其他的安装文件都在/etc/nginx
Ⅳ 配置 SSL
1h1ttps:1//help.aliyun.com/document_detail/98728.html?spm=5176.b657008.help.dexternal.5fa0799dG0lX6y
这里跟着官网说明按部就班就好。
大概步骤如下:
- 下载证书
- 打开服务器到nginx.conf配置文件同层文件夹,新建cert文件夹,然后将证书解压的俩文件放进去
- 再打开配置文件nginx.conf去修改
server {
listen 80;
server_name yourdomain; #需要将yourdomain替换成证书绑定的域名。
rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
}
# Settings for a TLS enabled server.
#
#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
server_name yourdomain; #需要将yourdomain替换成证书绑定的域名。
root html;
index index.html index.htm;
ssl_certificate cert/cert-file-name.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://程序运行IP:运行端口/;
}
}
- 此处还是要验证服务器平台的安全组,是否打开了443端口。