Parse-Server后台搭建与使用进阶篇(二)- Pars
上篇Parse-Server后台搭建与使用基础篇(一)- 阿里云ECS Parse-server的简单搭建与使用,简单介绍了一下在一台服务器上搭建一套简单的Parse-server服务的。虽然已近搭建完毕,可以测试使用,但是离正式使用还有一小段距离。
本篇结构:
一、MongoDB的部分问题
二、域名的配置
三、如何保持程序长期在后台运行
、如何快速+正确的使用。
一、MongoDB的部分问题
1.之前没有接触过mongoDB,我当时按照流程搭建完成之后就开始测试使用,隔两天我就会发现我之前存的数据没了?开始我以为是parse-server的问题,又由于是测试使用阶段并没有深究。连着好几次数据都没了,我寻思这么不稳定不能用啊!所以我自己查了下,发现了问题所在。
通过命令进入MongoDB,查询之后我看到了整个里面就一个db,名字为
READ_ME_TO_RECOVER_YOUR_DATA
ssh连接服务器后输入
# mongo
# show dbs //显示自己的数据库
这才是我们自己的数据库
一看这个上面的那个就不是我的库嘛,看着也不像系统库。之前没注意看这个名字,以为就是个系统生成的库,现在注意一下这个名字就感觉不大对劲。
阅读此内容帮助你恢复数据,感觉被黑了。
实际上就是被黑了 ·····
打开之后查看里面内容,果然就有勒索信息···
大致意思:给钱,不给钱就撕票!
2.稍微简单了了解一下MongoDB的使用。我们之前搭建的服务器有两个问题
1.外网可以通过ip+端口号访问我们的数据库。大概这些暂且能称为黑客的人,他们就是通过ip+固定端口号27017全网扫描扫到了就给数据加密发绑票勒索信了。
2.我们的数据库没有设置用户认证。别人知道ip和端口号都不需要破解就能进入我们的数据库了而且操作也不需要授权。
3.解决第一个问题外网可以通过ip+端口号访问我们的数据库。
解决方案就是把我们的数据库改成禁止外网访问,只能通过内网访问。直接阻断外网的端口扫描。
找到我们的配置文件:
# cd /root/parse/mongodb/bin/
# vim mongodb.conf
将bind_ip从0.0.0.0 改为127.0.0.1即可
4.解决第二个问题 给我们的MongoDB添加管理员账户,只有通过管理员登录认证才可以访问我们的数据库
进入mongodb 并创建用户
# mongo
切换到管理员
> use admin
创建一个管理员用户
db.createUser(
{
user:"admin321",
pwd:"admin123",
roles:[
{role:"userAdminAnyDatabase",db:"admin"},
{role:"readWrite",db:"parse"}
]
}
);
创建一个我们使用的parse db授权用户
db.createUser(
{
user:"parsedbadmin",
pwd:"parsedbadmin",
roles:[
{role:"readWrite",db:"parse"}
]
}
);
成功如图
ctrl+c退出命令行
同<3>打开mongodb.conf
最后一行添加一行
auth = true 表示需要认证才可以访问数据库
完整的配置选项如下,参数具体含义可以去百度一下
dbpath = /root/parse/mongodb/data/db
logpath = /root/parse/mongodb/data/log/mongodb.log
bind_ip = 127.0.0.1
port = 27017
fork = true
logappend = true
auth = true
# :wq退出保存之后,关闭原先的进程,重新运行起来
如何退出 暴力的就是查进程 然后根据进程pid杀
# netstat -tunlp
# kill -9 15608
重新运行
# mongod --config /root/parse/mongodb/bin/mongodb.conf
可以正常登录授权表示已经设置好了管理员用户
5.重启parse-server
# netstat -tunlp
# kill -9 15608
parse-server --appId appid --masterKey appkey --databaseURI mongodb://parsedbadmin: parsedbadmin@127.0.0.1:27017/parse --serverURL http://服务器ip/parse &
这样基本就能保证我们数据库的安全了。
二、域名的配置
我们在使用的时候一般都会配一个域名方便使用,如何配置域名呢?国内域名需要先备案才可以使用。
1.服务器设置域名解析,参照各个服务器厂商的设置。
阿里云如何设置域名解析
2.安装nginx
# sudo apt install nginx
安装完成后
# nginx -t
如图 说明已经安装成功
3.修改配置
# vim /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
server {
listen 80 ;
server_name www.域名;
location /{
root /home/web;
index index.html;
}
}
server {
listen 80 ;
server_name 域名;
location /{
proxy_pass http://localhost:4040;
}
location /parse/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:1337/parse/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
# Pass requests for /dashboard/ to Parse Server instance at localhost:4040
location /dashboard/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:4040/dashboard/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
}
#include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
}
4.启动nginx
# nginx
重启:
# nginx -s reload
5.重新配置 parse-dashboard
vim /etc/parse/parse-dashboard.json
{
"apps": [{
"serverURL": "http://你的域名:1337/parse",
"appId": "appid",
"masterKey": "appkey",
"appName": "AppName"
}],
"users": [{
"user": "admin",
"pass": "admin"
}]
}
6.重启parse-dashboard
parse-dashboard --config /etc/parse/parse-dashboard.json --allowInsecureHTTP &
7.然后打开你的浏览器直接输入你的域名www.域名.com:4040 即可通过域名登录你的parse-server