一,购买服务器(低配的话,40RMB/月左右)。
国内的(腾讯云,阿里云)比较稳定,但是需要备案,比较麻烦,而且看你的地址,北京上海这边还要上传居住证,我就卡在这里了,浪费我的钱还好只买了三个月的
国外的不需要备案,但是不是很稳定,买在香港也不用备案(若只是个人使用的话,建议买在香港),阿里云上面的入门云服务器300RMB/Year
个人理解:
买服务器就相当于买了个主机(都有一个ip地址),然后自己选择在主机上装什么系统,装什么软件都可以,随便自己折腾
一般我们自己开发的时候,都是在本地配好环境,然后本地起一个服务,当前开启这个服务的有很多,因为我是一个前端,所以我知道node,
这个时候你的IP地址就是服务器地址,只是一般用localhost代替了,
如果别人知道你的IP的话,也是可以访问你当前的项目的。当然需要在一个局域网内,试想一下,如果随便一个人都可以访问你的IP,那你电脑上的文件岂不是很危险。购买服务器的同时会有一个公网的IP,所以别人可以访问到你的网站。
二,购买域名
买了服务器之后,总不能让人家背你的ip进行访问吧,所以你这时候就需要有个域名了
可以去万网买个域名(50RMB/Y),买好了之后,就是进行DNS解析了。意思就是将你的域名指向你的服务器IP地址。
这样人家访问域名的时候,DNS就能解析这个域名,就知道需要去你的服务器获取资源。
三,备案,云平台里面就可以进入备案系统。首次填写的东西比较多。备案审核时间比较久。所以有句话,要建站,先备案(很麻烦,所以这时候服务器买在香港(国外)的好处就出来了,买了就可以直接使用)
四,买好了服务器之后,登陆你的服务器,可以使用阿里云提供的远程链接直接在网页上登陆服务器,也可以直接使用shell 直接ssh 服务器,然后在你的服务器上安装相关的软件(Nginx),不然一个空白的主机,怎么为人家服务呢
ssh root@xxx.xxx.xxx.xxx -p yyyy
首次登陆时,先更新系统
yum update -y
安装node(可以使用nvm),这里直接下载安装包,然后做软链
wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.xz
解压文件
tar xvf node-v8.9.3-linux-x64.tar.xz
做软链,使node全局有效
ln -s /root/node-v8.9.3-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v8.9.3-linux-x64/bin/npm /usr/local/bin/npm
安装PM2
npm install pm2@latest -g
创建软链接,使pm2命令全局有效
ln -s /root/node-v8.9.3-linux-x64/bin/pm2 /usr/local/bin/pm2
安装git
yum install git
我们在本地上开发的时候,需要安装node等等,然后启一个服务,在服务器上也一样,需要安装nginx(tomcat等等)
只不过我们的电脑可能还需要看电影,听音乐等等,区别就是服务器专注于提供一个服务。
安装nginx并配置nginx
yum install nginx
cd /
cd etc/nginx
vim nginx.conf
安装好了Nginx之后(说的好简单,坑还是要自己踩的),就是开启Nginx
nginx
nginx启动之后就可以直接访问IP看到nginx 的欢迎页面了
ps: 可以ping通IP的时候,但是不能通过IP访问时,可以在阿里云的实例中增加配置规则
五,chrome宣布7月不再支持http了,http都会被标记不安全,所以还有必要部署下https,这个查下资料
六,部署静态页面和node.js项目
nginx对于域名为xxxx.com的请求,都会请求到/home/www目录下,所以我们通过git或者scp等方式把静态资源目放置在/home/www目录下即可
ssh root@xxx.xxx.xxx.xxx -p yyyy
cd /home/www
git clone https://github.com/yourGithub/yourProject.git
对于nodejs项目,我们使用pm2来守护进程,让项目在后台运行。首先需要安装nodejs,然后再安装pm2
curl -sL https://rpm.nodesource.com/setup_9.x | bash -
yum install nodejs
npm i pm2 -g
接下来依然把nodejs项目通过git放置在/home/www目录下,进入目录,执行下列命令
npm i
pm2 start index.js --name server
┌─────────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├─────────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ my-server │ 0 │ fork │ 2306 │ online │ 22 │ 7h │ 0% │ 46.2 MB │ root │ disabled │
└─────────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
最后在nginx.conf里面添加一条代理规则(假设node服务端口为3000):
location /server/ {
proxy_pass http://localhost:3000
}
这样,就能够通过https://xxxx.com/server/访问到nodejs项目了。
七,部署打包
最简单的就是在本地打包编译好,然后将其压缩成一个压缩包,最后上传到服务器上去,在服务器上解压。人家再次访问的时候就是最新的内容了。
jenkins打包只是将我们打包的动作放在了另一台机器上,任何人部署升级都是在这个机器上操作。先更新代码,然后打包,最后上传,好处就是不用每个人都配一个部署环境了。
到此为止,用户就可以访问道你的项目了,当然这只是最简单的静态项目,就只是一个html然后里面执行了一些js而已,最典型的就是react单页面。创建一个react项目,然后build之后,就可以打包上传上去了。
若是想要动态的话,那还需要起个node服务提供接口,然后提供个数据库存储数据。
这个将会是下一步的努力方向。
总结:服务器还有很多知识,这个算是最简单的了解吧,但是对于一个完整的流程理解还是有用的。
原文地址:不仅仅是前端er——折腾服务器武装自己
网友评论