腾讯云极速配置 NodeJS + LNMP 运行环境

需求: 之前使用 PHP+Mysql 做开发,近年来NodeJS有点火,且不需要ApacheNginxTomcat做容器,想在不影响之前PHP开发环境下,也能体验NodeJS+Mysql玩法。国内搜索了很多也没有发现有关LNMP+Nodejs的具体部署教程,于是踩了很多坑,终于配出了 NodeJS + LNMP + PHPMyAdmin

一、购买服务器

1.选择服务器配置

因为 NodeJS 异步非阻塞的特性,所以多核 CPU 对 NodeJS 算比较浪费吧,所以主要提高内存的大小,所以选了腾讯云1核、2G 内存的服务器。

2.选择镜像

这个比较重要,镜像要是选得好,配置起来各种高效率。这里我推荐的系统是CentOS 7+ (主要是因为CentOS 6使用的是Python 2.6,yum各种坑,想升级成Python 2.7坑还多)。

镜像选择 PHP运行环境(CentOS7.1 64位 Nginx | PHP多版本)腾讯云里的服务提供商上海微柳这家提供的oneinstack 太强大了,工具和文档都很详细,并且和其它的镜像不一样的是,ssh连接时,会有暗红高亮,相当好用。然后直接买、买、买就行了(较其它主机提供商,腾讯云的学生机相当给力)。

然后就配好了,访问服务器80端口,下载镜像的文档(超级方便的各种脚本):

二、基本配置

注意:有些服务器需要在腾讯云的控制台上设置安全组,不然22端口将无法开放,就会导致才买的服务器通过ssh连不上。

首先开启FTP,方便传文件:

1.开启FTP服务器

service pureftpd start开启,这样就可以配置FTP了。 首先进入oneinstack目录 -> 运行./pureftpd_vhost.sh -> 添加一个FTP用户。

2.更改Mysql密码

oneinstack目录下,运行 ./reset_db_root_password.sh,输入数据库密码。

三、配置NodeJS

1.yum更新

执行:yum -y install zlib-devel curl-devel openssl-devel perl cpio expat-devel gettext-devel openssl zlib autoconf tk perl-ExtUtils-MakeMaker gcc make gcc-c++ openssl-devel wget ,主要的目的是为了当npm安装比较"娇气"的模块时不报错。

2.安装NodeJS

这里采用nvm来安装nodejs,是因为nvmnodejs进行版本管理,这就方便多了,比如我Ghost博客的Node版本只能是0.10.x || 0.12.0。而一般用的,是4.x.x了。所以非常有必要。

  1. 首先git clone https://github.com/creationix/nvm.git ~/.nvm
  2. source ~/.nvm/nvm.sh
  3. 将2中的命令vim加到~/.bashrc或 ~/.profile或 ~/.zshrc中,这样的话,下次ssh上去时,才不会发现nvm未安装;
  4. 然后就是nvm的使用了,nvm install node版本,参考nvm的Usage

安装完 node 后,最好更换一下npm 源,这样 npm 比较快些。

npm config set registry https://registry.npm.taobao.org

// 配置后可通过下面方式来验证是否成功
npm config get registry
// 或
npm info express

3.安装forever模块,永久运行node

npm install -g forever

四、配置Ngnix

1.虚拟主机的配置

新建后,会在产生2个重要文件(以我的域名test.ycjcl.cc为例)。

虚拟主机的配置文件(到时候运行nodejs时,需要更改成反向代理):             /usr/local/nginx/conf/vhost/test.ycjcl.cc.conf
项目目录(node项目,可以通过ftp传上去):                 /data/wwwroot/test.ycjcl.cc

2.防火墙设置

这里我生成了一个express项目,端口为3000,但是并不能访问到3000端口。

需要防火墙忽略3000端口,所以执行以下命令:

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT    #允许 3000 端口
service iptables save   #保存 iptables 规则

就可以ip+端口访问了:

3.将node服务和域名进行绑定

直接vi /usr/local/nginx/conf/vhost/test.ycjcl.cc.conf,修改配置:(中间的location都删了,直接加这个)

    location /
    {
        proxy_redirect off;
        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_set_header   Connection "";
        proxy_http_version 1.1;
        proxy_pass        http://127.0.0.1:3000;
    }

然后重启nginx ,service nginx restart

然后用域名访问成功!!!

需要 phpMyAdmin,直接用 ip/phpMyAdmin,可以进行mysql的管理。

五、安装Mongodb(可选)

1.首先将mongodb源添加到yum中。vim /etc/yum.repos.d/mongodb.repo编辑添加以下内容:

如果是64位CentOS 7系统

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

如果是32位系统

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/
gpgcheck=0
enabled=1
2.先更新yum:yum -y update,然后安装mongodb:yum -y install mongodb-org mongodb-org-server
3.运行mongodb(默认27017端口)

systemctl {start|status|stop} mongod

注意:从MongoDB“赎金事件”中,建议一定要使用db.addUserdb.changeUserPassword更改用户名和密码。

六、常见问题

如果重装系统,ssh上去时,出现以下错误,用ssh-keygen -R IP地址 来解决

有时候开启node服务时,提示某个端口被占用。此时要用命令查看端口fuser -n tcp 端口号,或查看服务ps -ef | grep 服务名,kill掉kill -9 pID进程号。如果大型访问量时,优雅软重启的使用kill -HUP pID进程号

相关推荐

三种 PHP 运行环境的性能对比

腾讯云从零部署nodejs站点

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WindCoder

Windows 7下硬盘安装Ubuntu 13.10图文教程

之前一直在虚拟机里玩Linux了,昨天忽然兴起想往真机里装一个,昨天找到的方法,今天折腾了半天终于装好啦。

501
来自专栏bboysoul

ubuntu安装sql-server

微软在2016年宣布sqlserver支持linux,目前支持在docker,ubuntu,,centos,suse上安装,安装过程也很简单,就是添加软件源然后...

654
来自专栏Youngxj

[系统装机]微PE安装原版Win7,Win8,Win10系统

6693
来自专栏Java开发

使用Hexo+GitHub搭建免费个人博客

博主GitHub博客地址:https://joeybling.github.io/

772
来自专栏乐沙弥的世界

VmWare6.5.2下安装RHEL 5.4(配置Oracle安装环境)

如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/10/04/4632312.aspx

842
来自专栏散尽浮华

centos下升级git版本的操作记录

在使用git pull、git push、git clone的时候,或者在使用jenkins发版的时候,可能会报类似如下的错误: error: The req...

2098
来自专栏CSDN技术头条

从0到1搭建属于自己的服务器

云计算这个概念从提出到现在已经十多年了,在这些年里,云计算取得了飞速的发展与翻天覆地的变化,而云计算也给我们很多开发者带来了福音,比如早期的微信公众号开发,我们...

1036
来自专栏散尽浮华

分布式监控系统Zabbix--完整安装记录-批量添加主机和自动发现端口

一、Zabbix-3.0.3批量添加主机的配置如下: 0)被监控机上要安装zabbix_agent,并配置好zabbix_agentd.conf (如下172....

2738
来自专栏王磊的博客

Twitter Storm安装配置(Ubuntu系统)单机版

要使用storm首先要安装以下工具:JDK、Python、zookeeper、zeromq、jzmq、storm (注:各个模块都是独立的,如果安装失败或者卡顿...

2965
来自专栏云计算教程系列

使用CVM搭建FileRun私人网盘

FileRun是由PHP编写的文件管理器和文件共享程序,可帮助您访问,整理,查看和编辑文件。您可以将其与Office文档,照片,音乐等文件一起使用。在本教程中,...

25711

扫码关注云+社区