Nodejs 从win转入centos不得不问的事情

Nodejs 从win转入centos不得不问的事情

###一台centos服务器如何运行多个node网站? 需要哪些东西? 需要注意什么东西?

###PM2与nginx是什么关系? 其中有什么玄机?

###centos安装时选择最小化安装? 对于初学者来说最小化安装合适吗? 如果合适,在进入系统之后? 需要安装那些组件?(我在这个过程中很痛苦,少着少哪,报莫名其妙的错误)

###另外有那些常识文章可以推荐的?请大家给予宝贵的意见和建议 作为一个放弃win平台,投入linux的怀抱的初学者,还有很多疑问啊。

11 回复

Nodejs 从 win 转入 CentOS 不得不问的事情

1. 一台 CentOS 服务器如何运行多个 Node.js 网站?

需要哪些东西?

  • Node.js: 首先确保你的 CentOS 服务器上已经安装了 Node.js。
  • PM2: 用于管理 Node.js 应用程序,例如启动、停止、重启等。
  • Nginx 或 Apache: 作为反向代理服务器,将外部请求转发到你的 Node.js 应用。

需要注意什么东西?

  • 每个 Node.js 应用程序应该运行在一个独立的进程中,避免相互干扰。
  • 使用 PM2 的 cluster 模式可以自动创建多个进程来处理高并发请求。
  • Nginx 可以配置为反向代理,将不同端口的应用映射到不同的域名或路径。

示例代码:

# 安装 Node.js 和 PM2
sudo yum install -y nodejs
sudo npm install -g pm2

# 创建一个简单的 Node.js 应用
echo 'console.log("Hello World")' > app.js

# 使用 PM2 启动应用
pm2 start app.js --name "hello-world"

# 将应用设置为开机启动
pm2 startup
pm2 save

2. PM2 与 Nginx 是什么关系?

其中有什么玄机?

  • PM2: 是一个进程管理工具,主要用来管理 Node.js 应用程序的生命周期。
  • Nginx: 是一个高性能的 HTTP 和反向代理服务器,通常用于负载均衡和静态文件服务。
  • 关系: Nginx 可以作为前端服务器,接收客户端请求,并将这些请求转发到 PM2 管理的 Node.js 应用程序。

示例配置:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000; # 假设 Node.js 应用监听 3000 端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. CentOS 安装时选择最小化安装?

对于初学者来说最小化安装合适吗?

  • 适合: 最小化安装可以减少系统资源占用,提高安全性。
  • 不适合: 对于初学者来说,可能会遇到一些依赖问题,需要手动安装很多必要的软件。

如果合适,在进入系统之后需要安装哪些组件?

  • 基础工具: sudo, wget, curl
  • 开发工具: gcc, make, git
  • Node.js: nodejs, npm
  • Web 服务器: nginx, apache
  • 监控工具: htop, iftop

示例命令:

sudo yum groupinstall "Development Tools"
sudo yum install epel-release
sudo yum install nodejs npm nginx

4. 另有哪些常识文章可以推荐?

  • DigitalOcean: 提供了大量关于 Linux 和 Node.js 的教程。
  • The Odin Project: 开源项目,提供免费的学习资源。
  • Node.js 官方文档: 详细介绍了 Node.js 的使用方法和最佳实践。

希望这些信息能帮助你更好地理解从 Windows 转移到 CentOS 的过程。


  • pm2 是 process manager 和 nginx 没啥关系 (http://promotion.pm2.io/)
  • 初学者还是用 ubuntu 吧 centos 好多设置都需要自己完成 例如 iptables 啥的

centos的资料多一些吧。pm是本地启动node,nginx是web服务,然后再设置反向代理,这样node就可以在外部访问了对吧

最重要的是学会yum吧

  1. 开启多个端口,或者反向代理不同的地址或端口
  2. PM2是一个Node的进程管理器,直接作用于Node的,Nginx一般只用做反向代理服务器,也可以用来做静态文件服务器,关系不是很大~当然你也可以用其他的web服务器做反向代理。
  3. 我感觉对于初学者来说最小化安装很痛苦,但是能加快学习进程,毕竟我也是初学者~自己是这样感觉的
  4. 个人感觉Linux是很高深的…慢慢积累…~~共同进步

nginx 一直安装不上。很郁闷。你是采用什么方式安装的呢?

yum 初步了解。所有的东西都可以采用yum的方式来安装吗?,例如node?mongodb、等等!

centos不熟,我用Ubuntu

1. 何运行多个node网站?

并发量不太大的网站,用forever可以很方便的管理多个。 http://blog.fens.me/nodejs-server-forever/

2. PM2与nginx是什么关系?

没有关系,nginx是静态文件服务器,PM2是Nodejs服务器,支持集群功能,同forever。网站并发量很大时候,用Nginx+PM2的模式 = 负载均衡+集群。

3. centos安装时选择最小化安装?

初学者,就不要定制安装了,用默认版本吧。

4. 这里有你需要学习的文章列表

http://blog.fens.me/series-nodejs/

请问安装rockmongo是否先要安装apche和php?

楼上说PM2是Node服务器。看原文怎么说吧。 pm2 is a process manager for Node apps with a built-in load balancer.

一台CentOS服务器如何运行多个Node.js网站?

需要哪些东西?

  1. Node.js环境:确保服务器上已经安装了Node.js。
  2. PM2管理器:用于进程管理和负载均衡。
  3. Nginx:作为反向代理服务器来处理HTTP请求。

需要注意的东西?

  • 确保所有Node.js应用都在不同的端口上运行。
  • 使用Nginx来转发不同域名或路径到不同的Node.js应用。
  • 配置防火墙允许必要的端口访问。

示例配置:

# 安装Node.js
sudo yum install nodejs

# 安装PM2
sudo npm install -g pm2

# 创建两个Node.js应用
# 应用1: /var/www/app1
# 应用2: /var/www/app2

# 启动应用
pm2 start /var/www/app1/index.js --name app1
pm2 start /var/www/app2/index.js --name app2

# 保存PM2配置
pm2 save

# 安装Nginx
sudo yum install nginx

# 配置Nginx
sudo nano /etc/nginx/conf.d/app1.conf

Nginx配置文件示例:

server {
    listen 80;
    server_name app1.example.com;

    location / {
        proxy_pass http://localhost:3000; # 假设app1监听3000端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

其他应用的配置类似。

PM2与Nginx是什么关系?

关系:

  • PM2:主要用于Node.js应用的进程管理,可以自动重启应用、保持应用高可用性。
  • Nginx:作为反向代理,将外部请求路由到后端Node.js应用,还可以进行静态文件服务和负载均衡。

玄机:

  • 使用Nginx可以减轻Node.js的压力,因为它可以处理更多的并发连接和静态文件请求。
  • Nginx可以通过配置来实现负载均衡,让多个Node.js实例分担压力。

CentOS安装时选择最小化安装?

对于初学者来说是否合适?

  • 最小化安装比较干净,但可能缺少一些常用的工具和服务。

需要安装哪些组件?

  1. 基础工具

    sudo yum install wget curl vim net-tools
    
  2. 开发工具

    sudo yum groupinstall "Development Tools"
    
  3. Node.js依赖

    sudo yum install gcc-c++ make
    sudo yum install libgcc libstdc++ libstdc++-devel
    
  4. 常用服务

    sudo yum install nginx
    

建议:

  • 最小化安装适合有一定经验的用户。
  • 对于初学者,可以选择标准安装,然后逐步添加必要的组件。

其他推荐的常识文章:

  • 官方文档:Node.js和Nginx的官方文档非常详细。
  • 社区资源:Stack Overflow、Reddit等社区中有很多经验分享。
  • 博客:搜索一些技术博客,通常会有具体的安装和配置教程。
回到顶部