Nodejs 从win转入centos不得不问的事情
Nodejs 从win转入centos不得不问的事情
###一台centos服务器如何运行多个node网站? 需要哪些东西? 需要注意什么东西?
###PM2与nginx是什么关系? 其中有什么玄机?
###centos安装时选择最小化安装? 对于初学者来说最小化安装合适吗? 如果合适,在进入系统之后? 需要安装那些组件?(我在这个过程中很痛苦,少着少哪,报莫名其妙的错误)
###另外有那些常识文章可以推荐的?请大家给予宝贵的意见和建议 作为一个放弃win平台,投入linux的怀抱的初学者,还有很多疑问啊。
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吧
nginx 一直安装不上。很郁闷。你是采用什么方式安装的呢?
yum 初步了解。所有的东西都可以采用yum的方式来安装吗?,例如node?mongodb、等等!
请问安装rockmongo是否先要安装apche和php?
楼上说PM2是Node服务器。看原文怎么说吧。 pm2 is a process manager for Node apps with a built-in load balancer.
一台CentOS服务器如何运行多个Node.js网站?
需要哪些东西?
- Node.js环境:确保服务器上已经安装了Node.js。
- PM2管理器:用于进程管理和负载均衡。
- 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安装时选择最小化安装?
对于初学者来说是否合适?
- 最小化安装比较干净,但可能缺少一些常用的工具和服务。
需要安装哪些组件?
-
基础工具
sudo yum install wget curl vim net-tools
-
开发工具
sudo yum groupinstall "Development Tools"
-
Node.js依赖
sudo yum install gcc-c++ make sudo yum install libgcc libstdc++ libstdc++-devel
-
常用服务
sudo yum install nginx
建议:
- 最小化安装适合有一定经验的用户。
- 对于初学者,可以选择标准安装,然后逐步添加必要的组件。
其他推荐的常识文章:
- 官方文档:Node.js和Nginx的官方文档非常详细。
- 社区资源:Stack Overflow、Reddit等社区中有很多经验分享。
- 博客:搜索一些技术博客,通常会有具体的安装和配置教程。