从零起步(一):Linux CentOS7VPS建站---Nodejs和Nginx

1,508 阅读5分钟

前言

作为一个前端,很久就有自己建一个站的想法了。之前为了能上Google所以买一个VPS。但是只用来上Goole有点浪费资源了,所以就一直捣鼓建站的事情。这对一个纯前端来说有一点难度。好在网络上教程不少,也学到了不少知识。特此分享一下自己建站的过程和心得。

顺便说一句,本人的vps安装的是CentOS 7系统,也许你的系统和我不一样,可能导致我后面讲的某些东西在你的vps上并不管用。

安装 Nodejs

-首先安装wget

    yum install -y wget

-直接安装编译好的 Nodejs

首先我们到Nodejs 官网的下载页面获取nodejs的链接。

在写这篇文章时,Nodejs 的最新稳定版本是 v8.11.4,所以以下步骤将以这个版本为例进行安装。

  1. 首先我们需要下载对应的二进制文件:
    wget -c https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.xz
  1. 提取文件:
    tar -xvf node-v8.11.4-linux-x64.tar.xz
  1. 解压之后得到的文件夹就是已经安装好的 Nodejs 了,为了方便我们把它放到了 用户根目录下面的 app 的文件夹里,你也可以换成其他路径:
    mkdir app
    mv node-v8.11.4-linux-x64 ~/app/nodejs
  1. 然而,这种方式安装的 Nodejs 并不完美。首先,Nodejs 的命令 node 和中 npm并不能在全局使用。为了解决这个问题,我们需要建立两个软链接,其~/app/nodejs是我们刚才安装的 Nodejs 的路径,在建立软链接的时候要注意区别。
    sudo ln -s ~/app/nodejs/bin/node /usr/local/bin/node
    sudo ln -s ~/app/nodejs/bin/npm /usr/local/bin/npm
  1. 现在,node 和 npm 可以在全局使用了,同样输入命令 node -v 来检查 Nodejs 是否安装成功:

前方有坑请注意!!!

在 npm 下全局安装的模块无法直接在 bash 中执行。例如,我们要在 npm 中安装 yarn:

$ npm install -g yarn
$ yarn
bash: yarn: command not found...

为了解决这个问题,我们需要在 Linux 上手动配置环境变量。编辑 /etc/profile 文件:

sudo vi /etc/profile

在文件的底部,添加下面两行代码:

export NODE_HOME=~/app/nodejs/bin
export PATH=$NODE_HOME:$PATH

跟刚才一样,~/app/nodejs 是我们安装的 Nodejs 的路径。如果不方便修改可以把文件移到本地,使用本地的文本编辑工具修改完以后再ftp上去。

现在,npm 全局安装的模块也可以使用了。

如果你还是显示command not found...的话建议你xShell重新连接一下vps。

Nginx 的安装与配置

-安装所需环境

  1. gcc

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++
  1. PCRE pcre-devel

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel
  1. zlib

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel
  1. OpenSSL

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。 nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

-nginx安装

  1. nginx官网复制连接地址
  2. 使用wget命令下载
wget -c https://nginx.org/download/nginx-1.15.3.tar.gz
  1. 解压、移动
tar -zxvf nginx-1.15.3.tar.gz
mv nginx-1.15.3 ~/app/nginx
cd ~/app/nginx
  1. 配置

使用默认配置就可以,当然,如果你要自己配置目录也是可以的。

./configure

如果网站有https的要求也可以这样配置:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_realip_module
  1. 编译安装
make
make install

以上我们的nginx不出意外就安装完毕了。接下来介绍一下nginx常用的命令:

  1. 查找安装路径
whereis nginx

7. 进入上个命令返回的路径下sbin文件夹

cd /usr/local/nginx/sbin/
./nginx             // 启动
./nginx -s reload   // 重启
./nginx -s stop     // 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
./nginx -s quit     // 此方式停止步骤是待nginx进程处理任务完毕进行停止。
  1. 查询nginx进程
ps aux|grep nginx
  1. 重启 nginx

对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:

./nginx -s quit
./nginx

当 nginx的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 nginx再启动 nginx 即可将配置信息在 nginx 中生效:

./nginx -s reload

以上没有出现问题以后,启动nginx,你就可以再浏览器上看到这个页面:

  1. 开机自启
vi /etc/rc.local

增加一行 :

/usr/local/nginx/sbin/nginx

设置执行权限:

chmod 755 rc.local

到这里,nginx就安装完毕了。当然我们安装nginx肯定是有有的,哪里用到后面机会再介绍。

补充

配置nginx的service 脚本

  1. 创建并编辑nginx.service
vim /usr/lib/systemd/system/nginx.service
  1. 填入以下内容
[Unit]                                                   #服务的说明
Description=nginx - high performance web server          #描述服务
Documentation=http://nginx.org/en/docs
After=network.target remote-fs.target nss-lookup.target  #描述服务类别

[Service]                               #服务运行参数的设置
Type=forking                            #是后台运行的形式
PIDFile=/usr/local/nginx/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  #为服务的具体运行命令
ExecReload=/bin/kill -s HUP $MAINPID                                       #为重启命令
ExecStop=/bin/kill -s QUIT $MAINPID                                        #为停止命令
PrivateTmp=true                         #表示给服务分配独立的临时空间

[Install]                               #服务安装的相关设置,可设置为多用户
WantedBy=multi-user.target
  1. 设置系统服务
chmod +x /usr/lib/systemd/system/nginx.service  #赋予脚本执行权限
systemctl enable nginx.service                  #设置nginx.service为系统服务
  1. 通过系统服务操作nginx
systemctl start nginx.service
systemctl reload nginx.service
systemctl restart nginx.service
systemctl stop nginx.service
  1. 设置开机自启动
systemctl enable nginx.service   #设置开机自启动
systemctl disable nginx.service  #停止开机自启动

结语

继续下一步学习: 从零起步(二):Linux\CentOS7上建站---MongoDB

感谢

(小白指南)在 Linux 服务器上安装 Nodejs、Nginx 以及部署 Web 应用

CentOS 7 下安装 Nginx

精简版nodejs线上项目部署

centos系统下nodejs项目通过nginx做代理

以及 百度 Google的技术支持,哈哈哈。