第一次提问:react webpack

使用了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模块