如何部署服务器

部署服务器,主要由以下几个步骤,下面将围绕这几个步骤,依次展开。

  1. 创建主机
  2. 创建用户
  3. 安装运行环境
  4. 把项目同步到服务器
  5. 安装进程管理程序
  6. 使用ip和端口调试,没问题,使用nginx作为反向代理
  7. 使用域名访问(先申请再绑定)

创建主机

目前可以使用各大厂商提供的云服务,快速创建主机。

而不用自己花高昂的价格去买,也不用在全国各地找合适的节点安装部署。

创建用户

创建主机后,默认有一个root账户,拥有所有权限。首先需要需要给root账户设置密码。

设置密码通常有很多规则。而且咱老百姓设置密码通常太简单了,某些程序分分钟就给破解了,

服务器的安全问题更加要注意了,你那简单的密码,就忘了吧,这里推荐一个生成密码的软件pwgen

安装了brew的用户可以使用brew安装

pwgen -C 12 可以生成一堆12位的密码,这里的密码强度还是可以的,选择一个就可以了。

因为root具有所有权限,掌握着整台服务器的生杀大权,万不可落到别人手里。

因此我们部署服务的时候,通常不用root账号去配置。

而是重新设置一个账号去配置。通常是一个服务一个账号,单独管理。

比如我们要设置一个web服务的账号,我们可以这样

add user web

就创建了web账户,当然,你需要为他设定密码,可以使用pwgen采用同样的方法创建一个。

因为在很多地方都需要用到sudo命令,而默认情况下,新建的用户并不具备这个命令的权限。

因此给web账户配置sudo权限。打开/etc/sudoers文件,发现sudo其实是个用户组,

使用

usermod -G sudo web

把web账户加入sudo这个组就可以了。

使用exit退出当前用户,输入web@ip和密码,使用web账户登录。

安装运行环境

像Nodejs Python 这种动态语言而言,必须要有相应环境才能运行。因此需要配置运行环境。

而 C、C++、Golang 、Rust 是静态语言,需要先将项目编译成二进制文件,再直接在服务器运行。

因此静态语言需要配置编译环境,但一般不在服务器配置,而是在其他地方配置编译环境,比如在docker中,

服务器只需要运行编译后的二进制可执行文件即可。

即便是使用nvm安装node运行环境,nvm在正式的生产环境也是很少使用,因为nvm有很多弊端,

比如,nvm将程序安装在了用户目录,这就意味着其他用户无法使用。从而给后期的维护造成麻烦。

因此,可以参考node官网是如何安装的。

把项目同步到服务器

手动部署,比如通过ssh sftp等把文件拉过来,或者使用git clone下来。这些都是手动部署,效率不高。

而现在,越来越多项目在使用自动部署,例如jenkins进行自动化部署,还可以进行自动化测试。可以在docker中安装。

kubernetes 是用来管理docker集群的。

安装进程管理程序

当我们在使用npm start 启动程序时,默认是在前台运行的,一旦使用Ctrl + C干掉当前的进程回到命令行时,服务也就跟着挂了。

因此,我们想让程序在后台运行,我们可以在命令行的末尾加上 & 比如 npm start &

尽管程序在后台运行了,但是管理这个进程却有不小的麻烦。

因此推荐使用专门的进程管理程序 比如 使用node写的pm2 和使用Python写的supervisor

尽管可以使用pm2 logs来查看日志,但是也有专门的日志服务,来方便我们处理日志,比如elastic

使用ip和端口调试,没问题,使用nginx作为反向代理

先使用IP地址和端口组合进行调试,需要注意的是,root用户才有权限取得1024端口以下的端口,而其他用户是没有这个权限的。

而一般我们写程序也不要指定80端口,而是使用反向代理,使用nginx 将监听的80端口,映射到程序指定的端口处理。

在Ubuntu环境下我们可以使用apt-get 来安装 nginx 服务,

而使用nginx需要在nginx的配置文件配置这个服务端口映射关系。其配置文件路径在 /etc/nginx/config.d/目录下,不存在是可以创建一个default.conf写入配置。

可以使用 nginx -t来检测配置是否有问题。

配置完成之后需要使用sudo nginx -s reload重启服务,以使配置生效。

在node程序中,我们使用了环境变量PORT来指定端口,在自动化配置时,修改端口时或许不太方便,我们也可以使用专业的配置服务来处理这些事情。

比如使用consul来管理配置服务,可以做到配置的集中化。

使用域名访问

IP地址难于记忆,于是就有了域名,将域名和IP地址一一匹配就可以通过域名来访问了,这就是所谓的dns所做的事情,将域名解析为IP地址。

还有些场合要求必须使用域名而不让用ip地址。因此使用域名访问的第一步,就是要注册一个域名。

一个域名只能绑定一个主机,如果想让同一个域名下指定多个主机,可以设置子域名,再指向别的主机。

注册域名之后,要将域名和主机进行绑定。绑定之后,就可以直接使用域名来访问了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,510评论 18 139
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,572评论 2 57
  • Page 1:nginx 服务器安装及配置文件详解 CentOS 6.2 x86_64 安装 nginx 1.1 ...
    xiaojianxu阅读 8,517评论 1 41
  • 配置运行Nginx服务器用户(组) 用于配置运行Nginx服务器用户(组)的指令是user,其语法格式为: use...
    吃瓜的东阅读 4,463评论 0 41
  • 什么样的男孩,长大会有出息?家有儿子的一定要看! 每位父母都望子成龙,望女成凤。尤其是对待儿子,要求会更严苛一些,...
    1e853c0b96a8阅读 156评论 0 0