服务器代码部署篇
Posted 邱秋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器代码部署篇相关的知识,希望对你有一定的参考价值。
Linux下, 远程登录脚本配置, git 安装配置, node 安装, mysql 安装配置,nginx 安装配置,从0到1
这篇文章只讲讲部署吧. 写代码没什么好说的. 网上有直播写代码的..
服务器 aliyun
购买服务器, 服务器备案, 拿到ip, 用户,密码
域名
购买域名,然后去备案, 拿到备案号, 把域名解析到对应的IP 上
环境
Telnet 脚本配置(Mac & Linux)
#!/usr/bin/expect -f
set ip 8.8.8.8 #服务器IP地址
set password 123456 #登录密码
set timeout 10 #超时时间
set user root #登录帐号
spawn ssh [email protected]$ip
expect {
"*yes/no" { send "yes"; exp_continue}
"*password:" { send "$password" }
}
interact
登录提示
@@@@@@@@@@@
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
当服务器相关数据有变动的时候,ssh 无法登录,只要清除本地的~/.ssh/known_hsots 文件相关的删除即可
Git
$ yum -y install git //安装git
$ git –-version //验证
关于git clone 权限的问题
$ cd ~/.ssh
#如果没有密钥则不会有此文件夹,有则备份删除
#生成密钥:
$ ssh-keygen -t rsa -C "[email protected]"
# 按3个回车,密码为空。
#最后得到了两个文件:id_rsa和id_rsa.pub
#添加密钥到ssh:
$ ssh-add ~/.ssh/id_rsa (需要之前输入密码.)
# id_rsa.pub 添加到gitlib or github
Git忽略规则和.gitignore规则不生效的解决办法
git rm -r --cached .
关于git一些常用的命令
#保存密码到本地
$ git config credential.helper store
#创建远程分支
$ git checkout -b dev #新建本地分支
$ git push origin dev:dev #push到远程分支
#删除分支
$ git branch -D dev #删除本地分支
$ git push origin :dev #删除远程分支 ,push一个空到分支到远程分支上
$ git push origin --delete dev #删除远程分支
#切换分支
$ git branch -a #查看分支列表,看不到最新分支,执行git pull
$ git checkout -b dev origin/dev #把远程的分支搞到本地并切换
$ git checkout dev # 切换到dev
#放弃清理本地更改
$ git checkout . && git clean -xdf
#缓存区操作
$ git add <file> | git add -A #加入到缓存区
$ git reset HEAD <file> #缓存区退回工作区,没有commit之前,已经git add
$ git checkout -- <file> | git checkout . #丢弃工作区修改,没有git add
#版本退回
$ git reflog #查看commit 版本
$ git reset --soft <版本号> #切回版本,本地代码不会变,只是改变版本号
$ git reset --hard <版本号> #切回版本,本地会改变,版本号也会变,慎用
$ git reset --soft HEAD~1 #直接切回上一个版本
$ git rm --cached <文件名> | git clean -xdf # 丢弃本地或者其他
$ git push origin <分支> --force #加上--force 覆盖远程分支,因为退回版本之后本地版本比线上版本低,无法提交
Node
$ wget https://npm.taobao.org/mirrors/node/v8.7.0/node-v8.7.0-linux-x64.tar.gz //下载git包
$ tar -zxvf node-v8.7.0-linux-x64.tar.gz // 解压
$ vi /ect/profile //编辑配置
#最后一行加入,路径为解压相对路径
export PATH=/node-v8.7.0-linux-x64/bin:$PATH
$ source /etc/profile 应用
$ node -v //验证
#npm 注册淘宝镜像
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
#yarn
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global
Mysql
#1 下载mysql的repo源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
#2 安装mysql-community-release-el7-5.noarch.rpm包
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
#假如报错的话, 先查询下是不是已经安装过了
$ rpm -qa | grep mysql
#有的话干掉他 --nodeps 强制卸载
$ rpm -e xxx (--nodeps)
#3 安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo
#4 安装mysql
$ sudo yum install mysql-server
$ service mysql start #启动
#根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
#查看版本
$mysqld -V
#5 重置密码
#重置密码前,首先要登录
$ mysql -u root
mysql > use mysql;
mysql > update user set password=password(‘123456‘) where user=‘root‘;
mysql > flush privileges; exit;
#6 远程登录
需要更改权限才能实现远程连接MYSQL数据库
$ mysql -h localhost -uroot -p
mysql> use mysql; #此DB存放MySQL的各种配置信息
mysql> select host,user from user; #查看用户的权限情况
mysql> select host, user, password from user;
mysql> Grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘ with grant option;
#(%表示是所有的外部机器,如果指定某一台机,就将%改为相应的机器名;‘root’则是指要使用的用户名,‘123456‘为密码)
mysql> flush privileges; #运行此句才生效,或者重启MySQL
最后一步, 在服务器防火墙配置加入规则 开放3306 端口.
Nginx
$ yum -y install nginx #安装nginx
$ nginx -v #查看版本
$ sudo nginx #开启服务
nginx.pid 失败问题
执行
sudo nginx -c /usr/local/etc/nginx/nginx.conf
sudo nginx -s reload #重启
sudo nginx -t #测试配置文件
nginx 转发node 配置
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name chuchur.com www.chuchur.com;
location / {
proxy_pass http://127.0.0.1:7001;
proxy_redirect off;
proxy_set_header $Host sync;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_send_timeout 300;
proxy_read_timeout 300;
}
}
nginx 如何开启https 和http2 (传送门)
ningx css 字体的支持,需要修改mime.types
加入以下代码
application/octet-stream eot;
application/font-sfnt ttf;
application/font-otf otf;
application/font-woff2 woff2;
application/font-woff woff;
如果是跨域的话,还需要做跨域配置
location ~* .(eot|ttf|woff|svg|otf)$ {
add_header Access-Control-Allow-Origin *;
}
[完]
以上是关于服务器代码部署篇的主要内容,如果未能解决你的问题,请参考以下文章