【问题标题】:How can I serve multiple React Native apps with Meteor on NGINX server?如何在 NGINX 服务器上使用 Meteor 服务多个 React Native 应用程序?
【发布时间】:2017-04-27 23:55:52
【问题描述】:

我正在尝试使用多个端口和 proxy_pass 参数配置 NGINX 服务器,以便我的服务器可以处理多个 Meteor/React Native 应用程序。我的 RN 应用程序连接到

let METEOR_URL = 'ws://52.X.XXX.168/websocket';//<=or 168:80/websocket
Meteor.connect(METEOR_URL);

仅当我不指定端口或指定端口 80 时才有效。我正在部署我的应用程序

ROOT_URL=http://localhost PORT=3030 MONGO_URL=mongodb://localhost:27017/MyApp node /home/ubuntu/myapp/bundle/main.js

(但也尝试过 ROOT_URL=http://localhost:8010 例如) 这一切都有效。但是,如果我尝试以任何方式运行第二个应用程序,我就会遇到麻烦。我已经在我的 nginx.conf 中尝试了多个服务器上游块,多个服务器块具有不同的侦听端口,但我永远无法将 RN 应用程序中的 METEOR_URL 更改为不同的端口并让 RN 应用程序获取任何数据(获取错误' 'mydata'' 没有订阅)。

我的 nginx.conf 看起来大致是这样的,我尝试过的东西被注释掉了:

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
# HTTP
#upstream app {
#    server 172.0.0.132:3030;
#    server 172.0.0.132:3060;
#}

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    #listen 3030;
    #listen 3060;
    listen 3090;


    # pass requests to Meteor
    location / {
        proxy_pass http://localhost:3030; # or 'app' if using upstream block

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade; #for websockets
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
    }

  root /var/www/html;
  server_name localhost;
}

server {
  listen 3060;
server_name  MyApp;
# pass requests to Meteor
    location / {
        proxy_pass http://localhost:3030;

    proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade; #for websockets
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
    }

}

任何关于我应该如何处理的建议都将不胜感激!

【问题讨论】:

    标签: node.js ubuntu meteor nginx react-native


    【解决方案1】:

    我建议使用 Phusion Passenger 和 nginx for Meteor,它很容易设置,而且他们的教程/入门非常好:

    https://www.phusionpassenger.com/library/install/nginx/install/oss/

    它会照顾流星的运行,并可以根据需要运行端口 80/443 上的所有内容

    【讨论】:

    • 谢谢,我希望不要走那条路,但也许最终会是最好的......现在我想我将为每个应用程序设置不同的服务器,就像那样笨拙似乎。令人沮丧,因为我确信它一定是可行的......
    • 与Passenger 一起做实际上很容易,而且是永久的解决方案。文档中有一个向导可以引导您完成整个过程。每个服务器的配置文件非常小而且简单,你会想为什么一开始不这样做,实际上设置单独的服务器需要更多的工作
    猜你喜欢
    • 2019-10-29
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    相关资源
    最近更新 更多