使用了react、redux、webpack nodejs,想不明白的是,我们一般开发web项目的时候不是有tomcat作为服务器吗?这里用了nodejs做服务器,那我要跟我的tomcat结合使用怎么弄呢?
一般不用nodejs做服务器 你总不能指望用户用ip+端口去访问吧
常见做法是用tomcat开启反向代理功能 然后将相关操作分发给node.js的服务器
我想知道你是用tomcat 是做什么服务的
介绍下我的吧 前不久用nodejs的socket.io模块配合php做了一个扫码登录
我当时用的是nginx服务器做的反向代理的 node.js的服务不直接面向公网
整个请求的流程
1.request到nginx服务器 nignx服务器监听80端口
2.如果是js请求 将请求分发到9000端口 如果是php应用 请求发送到8080端口
3.9000端口是node自带的service 8080端口是用apache跑的php
关键配置如下
worker_processes 1;
error_log /var/log/nginx/error.log info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/error.log combined;
sendfile on;
keepalive_timeout 65;
gzip on;
upstream nodeservice {
server 127.0.0.1:9000;
}
upstream phpservice {
server 127.0.0.1:9000;
}
server{
listen 80;
server_name www.node.com;
location *.js {
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 X-Forwarded-Proto $scheme;
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://nodeservice;
}
location *.php {
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 X-Forwarded-Proto $scheme;
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://phpservice;
}
}
include servers/*;
}
具体讲解下就是.js后缀的请求分给9000端口 .php的请求分给8080端口 主要就是用到upstream模块