入手阿里云新服务器的部署NODE
入手后先用 'yum -y update' 来升级一下1 设置非root用户 1.1 新增用户
为你的服务器新增一个用户
useradd 用户名
passwd 用户名//然后输入密码
1.2 设置ssh
新增用户之后就设置root为非ssh登录的,新用户可以ssh登录:修改/etc/ssh/sshd_config
service sshd reload
之后马上生效PermitRootLogin:yes --> PermitRootLogin:no
这样就可以禁止root用户登录了。
1.3 附上一些命令
useradd//添加用户
passwd//为用户设置密码
userdel//删除用户
usermod//修改用户信息
groupadd//添加用户组
groupdel//删除用户组
groupmod//修改用户组信息
groups//显示当前进程用户所属的用户组
2 配置git 2.1 思路
我们假设你在服务器上设置了一个叫做a的用户,那么我们上线的代码现在自己电脑上写好,push到git服务器上,再在由a用户pull下来上线。那么我们在root上面创建一个共享的仓库,这样自己的电脑和用户a都可以向这个仓库拉取和提交代码。那么这个git服务器服务器应该如何搭建呢?其实就是新增一个git用户
useradd git
passwd 密码
//以下为升级git的,centos的yum能安装的git最多去到1.7
//因此需要安装2.X 的git的话,先卸载,再下载源码编译安装
yum remove git
//在https://www.kernel.org/pub/software/scm/git上选择你要的版本
src wget https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz
//安装必要工具包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
//解压
tar xzf git-2.10.0.tar.gz
cd git-2.10.0
make prefix=/usr/local/git all
make prefix=/usr/local/git install
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc
2.2 搭建
配置
// 在/srv下创建git文件夹,再在git里面创建空仓库
cd /srv
mkdir git
cd git
git init --bare project.git // project为项目名字,自定义的
//成功就会显示:Initialized empty Git repository in /srv/git/project.git/
// 把所有权给git 用户
cd ../
chown -R git:git git
//在自己电脑上:
git clone git@服务器IP:/srv/git/project.git
/*以上的文字很不幸的出现了很多git ,看清楚git其实分别对应了文件夹名字,git命令还有用户名三个东西就好了*/
安全:处于安全考虑,我们应该禁用git用户的shell登陆。
vim /etc/passwd
//找到这一行
git:x:1001:1001:,,,:/home/git:/bin/bash
//改成
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
3 安装node 3.1 node安装
//该方法是源码编译安装,比较慢
//确保gcc安装
yum -y install gcc
//下载node 这里可以去官网看看你要的版本号
wget https://nodejs.org/dist/v5.6.0/node-v5.6.0.tar.gz
//解压
tar -zvxf node-v5.6.0.tar.gz
// 开启配置,编译
cd node-v5.6.0
./configure
make && make install
//要能业务化的话 pm2 && express 都不可少
npm i -g n //升级node用的
npm i -g express
npm i -g pm2
3.2 pm2的配置
//pm2开机启动
pm2 startup centos
//创建一个processes.json文件
{
"apps": [
{
"name": "xxx",
"script": "./bin/www",
"log_date_format": "YYYY-MM-DD HH:mm Z",
"log_file": "./logs/xxx.log",
"error_file" : "./logs/xxx.log",
"out_file": "./logs/xxx.log",
"merge_logs": true,
}
]
}
//保存退出后启动
pm2 start processes.json
4 安装配置nginx 4.1 安装
yum install nginx
cd /etc/nginx
//这里开始修改配置
vim nginx.conf
//-> 这里不细说明配置:只需要找到conf里面有没有这一段:include /etc/nginx/conf.d/*.conf;
// 退出之后进入/etc/nginx/conf.d目录,新建一个配置文件
vim xxx.com.conf//xxx.com是你的域名名字
4.2 配置文件
//xxx.com.conf
upstream node {
server 127.0.0.1:3000;
}
server {
listen80 default_server;
server_namexx.com www.xx.com;
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://node;
}
access_log xx/access.log main;
}
4.3 nginx的一些命令
//测试配置文件是否出错
nginx -t -c /etc/nginx/nginx.conf
//启动
service nginx start
//重启
service nginx restart
4.4 新增SSL配置文件实例
upstream node {
server 127.0.0.1:3000;
}
server {
listen 443 ssl;
server_name***;
#你的域名ssl on;
ssl_certificate***.pem;
#pem文件路径
ssl_certificate_key***.key;
#key文件路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
# 禁止爬虫!如果你要做SEO的话!这个最好就不要咯
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot"){return 403;
}location / {
deny 123.126.113.134;
deny 111.251.93.84;
proxy_pass http://node;
}
access_log*.log main;
}
5 安装配置redis 5.1 安装
yum install gcc-c++
yum install -y tcl
yum install wget
//在官网http://redis.io/拿到下载链接
wget 链接
//解压 进入目录 编译 安装
tar -xzvf redis
mv redis /usr/local/redis
cd /usr/local/redis
make
make install
5.2 配置
mkdir /etc/redis
mkdir /var/redis
mkdir /var/redis/log
mkdir /var/redis/run
mkdir /var/redis/6379
//在redis解压根目录中找到配置文件模板,复制到如下位置。
cp /usr/local/redis/redis.conf /etc/redis/6379.conf
//通过vim命令修改
daemonize yes
requirepass 密码
pidfile /var/redis/run/redis_6379.pid
logfile ca
dir /var/redis/6379
//最后运行redis:
redis-server /etc/redis/6379.conf
//测试链接
redis-cli -h 127.0.0.1 -p 6379 -a 'songhang'
//开关
service redis_6379 stop
service redis_6379 start
5.3 开机启动
确定已经执行了第二步的配置,保证daemonize yes
echo "/usr/local/redis/src/redis-server /etc/redis/6379.conf &" >> /etc/rc.local
6 安装配置数据库MySQL 6.1 简单的安装
服务器端
阿里云上的centos7.0系统。因为在centos直接搜索mysql是木有这个软件的(原因自己百度),只有mariadb,你可以把它当成名字不用而已就好了。
安装很简单:
//安装
yum install mariadb mariadb-server
//启动
systemctl start mariadb
//开机启动
systemctl enable mariadb
//root密码等相关
mysql_secure_installation
//登录
mysql -u root -p
//创建新用户
create user 'username'@'localhost' identified by 'password'
开发机器上
手上的是MacBook,简单的去官网下载Mysql来点开安装就可以了。接下来推荐一个图形界面的工具:mysqlWorkBench。也是直接下载后点开安装。
注意:新版的Mysql安装后之后弹窗给你一个初始化密码的
6.2 远程登陆
由于我们刚才新建的用户的host定义了localhost,所以在开发机器上是没办法登陆的。因此需要用调整一下
//用root登陆
mysql -u root -p
//进入mysql数据库
use mysql;
// 修改host为通配符%
update user set host='%' where user='username';
// 查看一下
select host, user from user;
flush privileges;
6.3 分配权限
这时候我们能在开发机器上登陆新建的用户了,当时确发现没啥权限,做啥都做不了,所以应该分配一些权限给他。
//用root登陆
mysql -u root -p
//创建一个数据库(create database sanyuelanv)
create database databaseName
//授予用户操作这个数据库的所有权限
grant all on databaseName.* to username@'%';
flush privileges;
后记:zsh 【入手阿里云新服务器的部署NODE】因为个人喜好用ZSH,所以把bash替换成zsh,再加上oh-my-zsh。这样才觉得舒服。
echo $SHELL //查看当前的shell,一般的结果都是/bin/bash
cat /ect/shells //查看bin下面是否有zsh
yum install zsh //安装zsh
cat /ect/shells //再次查看
chsh -s /bin/zsh//切换zsh
reboot//重启
//重启完成之后
yum install git//安装git
//安装oh-my-zsh,装好之后切换用户或者重启一下
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
//如果出现:warning: cannot set LC_CTYPE locale的错误
vim /etc/profile
//后面加上这两行
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
//保存退出后生效
source /etc/profile
推荐阅读
- 百度技术分享|中间件技术在百度云原生测试中的应用实践
- 【百度官方技术分享】中间件技术在百度云原生测试中的应用实践
- 云岩区与中国移动贵阳分公司|云岩区与中国移动贵阳分公司 签署协议推进5G建设
- 投稿|金山云让雷军失望了
- 程序员|29岁vivo员工吐槽(看完阿里P9大牛的“Java成长笔记”我悟了)
- 输入几行代码,轻松迁移|输入几行代码,轻松迁移 SpringBoot 应用上云
- 实时云渲染的关键技术是什么()
- 投稿|互联网巨头造车:小米百度一言难尽,阿里腾讯人间清醒?
- 投稿|海天前脚出事,李锦记后脚迎来阿里靖捷
- 投稿|Web 3.0给中小企业云服务带来哪些启示?