在空空的centOs服务器后,第一步就是先安装我们需要的东西。
zlib
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
wget
yum -y install wget
node
安装
wget https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.gz
解压
tar -zvxf node-v9.9.0-linux-x64.tar.gz
移动到安装目录并重命名 node
这里我把文件夹移动到/usr/local/node,因为这个目录,环境变量可检查到
mv node-v9.9.0-linux-x64 /usr/local/node
配置环境变量
打开etc目录下的 profile 文件
vim /etc/profile
在文件的最后添加如下内容
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
使刚配置好的环境变量生效
source /etc/profile
配置完毕后,使用node -v,npm -v来查看是否配置成功。
可能你会发现node版本都更新到10几了,为什么还用9的!!!请稍安勿躁。
这里我们安装下 n,来管理我们node版本。
n
npm i n -g
现在,我们来升级虾版本啦。。。
n stable
稳定版 stable ,最新版 latest ,指定版本号v8.11.1
pm2
我们安装node,那当然是使用node项目,那么管理node项目莫过于pm2了
npm i pm2 -g
是不是很简单啊?
用法
pm2 start bin/www 或 pm2 start app.js // 启动进程/应用
pm2 start app.js --name wb123 // 重命名进程/应用
pm2 start bin/www --watch // 添加进程/应用 watch
pm2 stop www // 结束进程/应用
pm2 stop all // 结束所有进程/应用
pm2 delete www // 删除进程/应用
pm2 delete all // 删除所有进程/应用
pm2 list // 列出所有进程/应用
pm2 describe www // 查看某个进程/应用具体情况
pm2 monit // 查看进程/应用的资源消耗情况
pm2 logs // 查看pm2的日志
pm2 logs www // 若要查看某个进程/应用的日志,使用
pm2 restart www // 重新启动进程/应用
pm2 restart all 重新启动所有进程/应用
安装后,那就是启动egg项目了,在启动之前,需要对egg项目根目录下添加个文件。
// server.js
const egg = require('egg');
const workers = Number(process.argv[2] || require('os').cpus().length);
egg.startCluster({
workers,
baseDir: __dirname,
});
进入egg项目根目录,使用pm2启动。
pm2 start server.js --name test
错误
(1)ProcessContainerFork.js
启动egg项目,难免有出现一些错误,这里我记录下遇到的问题。
Error:
Cannot find module '/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js'
ProcessContainerFork.js一些错误,查询github官网的issues得到解决方案。
原因是您的PM2 env被修改。
rm -rf ~/.pm2
然后用pm2重新启动项目。
如果这种方法依旧有错的话,请检查数据库密码,插件配置是否错误。
有时候这些错,egg并不会明确指出。
也可尝试在packaage.json增加--ignore-stderr,具体如下:
// package.json
"scripts": {
"start": "egg-scripts start --daemon --title=egg-server-node-school-wkdl --ignore-stderr",
"stop": "egg-scripts stop --title=egg-server-node-school-wkdl",
},
nginx
PCRE(Perl Compatible Regular Expressions)
PCRE 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用pcre 开发的一个二次开发库,nginx也需要此库。
yum install -y pcre pcre-devel
如果安装的时候有问题的话可能需要安装GCC和OpenSSL以下提供命令
yum install gcc-c++
yum install -y openssl openssl-devel
安装nginx
wget -c https://nginx.org/download/nginx-1.14.0.tar.gz
可将解压后的nginx-1.14.0.tar.gz移动到/usr/local/下,并更名为nginx
mv nginx-1.14.0.tar.gz /usr/local/nginx
使用
使用nginx的默认配置
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --with-http_stub_status_module --with-http_ssl_module
编译安装
make
make install
进入nginx/sbin目录,可以看到有一个可执行文件nginx,直接./nginx执行就OK了。
查看
安装好启动好后无法访问到页面
查看是否安装好
ps -ef|grep nginx

nginx页面可以先查看一下你服务器的安全组策略是否有启用80端口。
如果启用之后还是无法访问需要查看nginx的配置文件nginx.conf
在nginx/sbin中可以执行下面这个语句查询自己使用的nginx.conf在哪个位置,同时这也可以验证你的nginx.conf文件是否是正确的。正确的格式会提示test is successful
./nginx -t
编辑sbin下nginx.config


停止
从容停止
ps -ef|grep nginx

kill -QUIT 3905
重启
进入nginx/sbin下,输入命令./nginx -s reload 即可
