腾讯云OpenCloudOS 部署nodejs + nginx + https + mysql数据库(linux系统通用)
一、进入 nodejs官网下载linux版本的nodejs包
二、进入服务器,新建目录/home/node
三、将第一步下载的安装包上传到node目录下
四、解压上传的node包
1、解析安装包的命令
xz -d node-v8.11.1-linux-x64.tar.xz
tar xf node-v8.11.1-linux-x64.tar
2、这里是解压后的文件
五、将node命令软链接到系统的bin目录下
1、软连接命令
ln -s /home/node/node-v18.13.0-linux-x64/bin/node /usr/local/bin/node
ln -s /home/node/node-v18.13.0-linux-x64/bin/npm /usr/local/bin/npm
ln -s /home/node/node-v18.13.0-linux-x64/bin/npx /usr/local/bin/npx
2、软连接命令执行完成后系统的/usr/local/bin目录下会生成三个软链接
3、验证nodejs命令是否为全局命令
进入/home目录执行命令node -v
、npm -v
能正确显示版本号说明软链接成功
六、安装nginx
1、进入任意目录 安装nginx: yum install nginx
2、进入nginx 目录 /usr/sbin执行命令启动: ./nginx
3、验证nginx是否正确启动
浏览器直接访问自己服务器的公网ip地址,如果能正常访问nginx的欢迎页面说明nignx已正常启动
七、将域名解析到自己的服务器
1、解析步骤参考文档微信公众号部署到阿里云服务器(服务器配置)
2、解析完成后浏览器地址输入域名地址验证是否解析成功
八、nginx配置https证书
1、阿里云参考文档[nodejs服务 nginx 配置https访问](微信公众号小程序实战开发vue3+nodejs+koa2+mysql+nginx阿里云部署教程 | 波波科技文档合集)
2、腾讯云域名配置https访问
- 进入配置好的域名解析页面,点击免费的ssL证书申请
- 申请完成后会自动生成一条域名解析记录,点击
查看详情
进入证书页面
- 点击
我的证书
,可以看到已经申请完成和签发的证书,点击对应证书的下载按钮
- 我们选择nginx版本下载
- 把下载好的证书
.key
、.pem
文件上传到服务器的/home/https目录下
- 修改nginx配置文件
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
# 强制浏览器输入域名时跳转到https的协议访问
server {
listen 80;
server_name _;
rewrite ^/(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html/bobokeji;
ssl_certificate "/home/https/bobokeji.pem";
ssl_certificate_key "/home/https/bobokeji.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://127.0.0.1:8080/;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
3、配置好nginx后重启nginx服务,浏览器输入https域名验证https是否生效
九、安装pm2管理node进程服务
1、安装pm2
进入目录/home/pm2,执行命令npm install pm2
安装pm2
2、将pm2命令软连接到全局命令
-
执行软链接命令
ln -s /home/pm2/node_modules/pm2/bin/pm2 /usr/local/bin
-
执行完软连接命令后可以在/usr/local/bin目录下查看是否生成一条新的软链接
- 执行命令
pm2 -v
如果能正常返回版本好则说明pm2服务能正常运行了
3、进入 nodejs服务的目录下pm2启动node服务
执行启动命令:pm2 start index.js --name="index.js"
,显示如下进程列表则代表启动成功
十、安装mysql数据库
1、更新yum源
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
执行完上面命令后如果出现Peer reports incompatible or unsupported protocol version.这个错误请执行 yum update -y nss curl libcurl
2、安装mysql社区版
- 执行如下命令安装mysql
yum -y install mysql-community-server --nogpgcheck
- 如果报以下错误,则需要禁用默认的mysql模块
- 执行命令
sudo yum module disable mysql
- 再次执行安装命令
yum -y install mysql-community-server --nogpgcheck
- 如果出现如下执行事务报错
- 执行命令, 查看本机自带的Mariadb包,并且卸载俩个系统自带的包
rpm -qa | grep mariadb // 查看系统自带的Mariadb
rpm -e --nodeps mariadb-connector-c-config-3.1.11-2.el8_3.noarch // 卸载系统包
rpm -e --nodeps mariadb-connector-c-3.1.11-2.el8_3.x86_64 // 卸载系统包
- 重新执行安装mysql的命令
yum -y install mysql-community-server --nogpgcheck
十一、登录mysql并修改默认密码
1、查询默认的随机密码
cat /var/log/mysqld.log | grep 'temporary password is generated'
2、登录mysql
mysql -uroot -p
3、修改数据库的密码
set password='****';
4、Linux平台MySQL的安装目录
5、mysql的基础操作命令
mysql -u root -p //登录mysql
mysql>exit // 退出mysql
show databases; // 查看mysql数据库
set password='testroot'; // 设置mysql数据库密码
// 服务端启动mysql
1.启动mysql服务. systemctl start mysqld
2.添加MySQL服务到开机启动 systemctl enable mysqld
3.重启MySQL服务 service mysqld restart
启动mysql服务:
systemctl start mysqld.service
停止mysql服务:
systemctl stop mysqld.service
重启mysql服务:
systemctl restart mysqld.service
查看mysql服务当前状态:
systemctl status mysqld.service
设置mysql服务开机自启动:
systemctl enable mysqld.service
停止mysql服务开机自启动:
systemctl disable mysqld.service
参考文章:https://blog.csdn.net/weixin_44436964/article/details/123845958
https://www.cnblogs.com/falling-trees/p/16144928.html
十二、数据库的基础配置
1、 修改配置,使数据库能在不同机器访问
use mysql; #切换访问mysql库
update user set host = '%' where user = 'root'; #使root账号能在不同机器登陆,否则只能本地localhost访问
alter user 'root'@'%' identified with mysql_native_password by 'your password';
FLUSH PRIVILEGES; #刷新(不用重启数据库使上面的修改生效)
quit #退出数据库
2、配置开机自动启动
添加MySQL服务到开机启动 systemctl enable mysqld