资讯专栏INFORMATION COLUMN

阿里服务器之项目线上部署过程

sevi_stuo / 3450人阅读

摘要:还有需要配置安全组,在阿里云控制台中进行配置,添加和端口,才能够访问到线上服务器。

在搭建web全栈的过程中,最令我头疼的就是项目的部署与上线,这个过程虽然简单,但是对于全栈菜鸟的我来说真的是个大坑,但是我还是去尝试,终于通过各种文档、请教与实践中完成了线上部署,在此做一下记录与总结
一、购买服务器

服务器选择:服务器的品牌有很多,如亚马逊、阿里云、腾讯等等,各大厂商之间的产品、服务各不相同,但请尽量选择靠谱的产品,在这里我选择的是阿里云,因为阿里云的服务真的很及时,而且文档也写的很详细,有时候做活动,产品的价格还是不错的。

遇到不懂的问题可是先查看阿里云上的帮助文档

在询问了一些前辈之后,购买阿里云上的Linux系统会相对window server安全系数高一些,只是个人是使用window系统,需要去了解一下linux常用的命令语句

二、创建连接(实现本机和阿里服务器连接)

将本机与服务器连接的方法有很多,具体请参考连接实例

windows环境的是无法直接连接linux系统的,需要在电脑上下载软件才可以,一般使用PuTTY与xshell(这个软件是收费的),阿里云上有PuTTY的使用方法,但我个人是使用xShell方法,感觉更加方便与快捷

主机: root

密码:就是在阿里云上设置的密码

三、格式化数据磁盘

官网上对于非I/O优化实例需要格式化磁盘,个人的配置是I/O优化的,所以不需要配置这部分

四、配置秘钥

配置秘钥是为了实现实例连接,更方便的操作服务器,通过分配不同权限来使不同的管理者来操作服务器上相应的功能

ssh的配置与github的配置相似。首先需要在服务器上生成".ssh"文件,然后一路回车,一般ssh会创建在/root的目录下

  ssh-keygen -t rsa -b 4096 -C "xxx@xxx.com"

然后设置ssh代理:其代理 Agent pid 为 12607

  eval "$(ssh-agent -s)" 

创建授权文件: 这份文件只对当前的计算机起作用,编辑.ssh文件中的“authorized_keys”文件,保存后提示不能够读写该文件,就是权限不够,先按回车,进入到编辑页面,再“esc”,再同时按下“shift”,然后输入“q”退出,再进入就行了,(注:在要操作的当前目录下可以不用sudo与该目录路径)。打印本机的公钥“id_rsa.pub"

授权文件并重启实例

   chmod 600 authorized_keys

   sudo service ssh restart
五、搭建node环境

更新系统

sudo apt-get update

安装相关的模块与包文件:如git、wget等,可以根据项目需求进行安装

 sudo apt-get install  git   vim  open  ssl  build-essential   libssl-dev   wget   curl

node在服务器上安装可以借助nvm,这个插件依赖于wget模块,执行下列命令。安装完成之后会提示需要再开一个shell窗口,才可以看到nvm版本信息

 wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

使用nvm安装node版本:版本号可以自己选择,建议安装稳定版本会比较方便维护

 nvm install v8.9.0

全局安装淘宝镜像,能够使npm的下载速度更快,安装完淘宝之后还得告诉系统我们增加这个文件

# 淘宝镜像
npm --registry=http://registry.npm.taobao.org install -g npm

# 安装文件
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

# 安装cnpm
npm --registry=http://registry.npm.taobao.org install -g cnpm

搭建好了nodejs环境之后,可以先尝试自己搭建服务器,检查一下服务器时候可以运行,在搭建服务器的过程中,我个人遇到了防火墙与安全组问题:ubuntu默认了安装的时候是没有配置防火墙的,需要自己配置防火墙。还有需要配置安全组,在阿里云控制台中进行配置,添加ip和端口,才能够访问到线上服务器。

可以使用pm2对阿里上的服务器进行监管,每次上传文件之后,记得重启

六、设置反向代理ngnix

安装ngnix

sudo apt-get install nginx

安装完后,其目录在/ect/nginx,及其目录文件

编写nginx的配置文件,当有多个项目对应到多个服务的时候,需要使用nginx使服务实现负载均衡,写的这个.conf配置文件都会被加载到“/nginx.conf”这个文件夹下,在配置server_name的时候直接写ip地址就行。也可以参考这篇文章nginx配置文件详解

upstream shop {
# Nodejs app upstream
        server 127.0.0.1:9527;
}
# Server on port 80
server {
        listen 80;
        server_name 47.52.43.40; //个人IP地址或者域名

   location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_responses 0;
        proxy_set_header Connection "upgrade";
        proxy_max_temp_file_size 0;
        proxy_pass http://47.52.43.40:9527; #设置反向代理较为重要的一个参数,将本地端口9527转向server通用入口80端口
        proxy_redirect off;
        proxy_read_timeout 240s;
   }
}

测试配置文件: 当出现ok与success时说明配置的文件配置成功

sudo nginx -t

重启nginx

nginx reload
七、安装mongodb

mongodb官网上有ubuntu环境下配置mongodb环境的详细步骤

# 导入共有钥匙为包管理系统使用
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

# 为mongodb创建一个列表文件(根据ubuntu版本不同,配置也不一样,在此演示的是Ubuntu14.04版本)
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

#更新数据库
sudo apt-get update

#安装mongdb(这是安装最新版本的)
sudo apt-get install -y mongodb-org

# 启动mongod数据库
sudo service mongod start

当连接数据库出现问题时,可以查看在mongdb.log日志

mongodb的默认端口是27017,如果想要更改mongodb的端口可以在mongod.conf文件中进行更改端口,而且需要修改防火墙iptable中的规则,启动mongodb的时候需要加端口号

mongo --port  端口号
八、上传文件

对于服务器的基本环境已经配置完成,便可以上传文件了,在这里推荐一个上传文件的工具filezilla,主机是ip地址,用户名为root,端口号为22,然后找到本机的文件与在服务器上的文件目录,便可直接上传。

服务端上传文件后需要安装依赖,前端需要将项目打包

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39788.html

相关文章

  • 阿里,我们如何管理代码分支?

    摘要:摘要阿里有很多的研发团队,不同事业部使用的发布流程分支策略并非整齐划一,但总体上看是比较规整的。引言在阿里内部,流行着许多有意思的工程实践。比如分支管理这件事,其实属于工具和习惯各占一半,并且颇有阿里特色的成分,适合作为一个例子。 摘要: 阿里有很多的研发团队,不同事业部使用的发布流程、分支策略并非整齐划一,但总体上看是比较规整的。其中有一种主流的发布模式以及对应的分支使用方式,称为A...

    learning 评论0 收藏0
  • 阿里,我们如何管理代码分支?

    摘要:摘要阿里有很多的研发团队,不同事业部使用的发布流程分支策略并非整齐划一,但总体上看是比较规整的。引言在阿里内部,流行着许多有意思的工程实践。比如分支管理这件事,其实属于工具和习惯各占一半,并且颇有阿里特色的成分,适合作为一个例子。 摘要: 阿里有很多的研发团队,不同事业部使用的发布流程、分支策略并非整齐划一,但总体上看是比较规整的。其中有一种主流的发布模式以及对应的分支使用方式,称为A...

    hoohack 评论0 收藏0

发表评论

0条评论

sevi_stuo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<