gpt4 book ai didi

cordova - 如何通过 NGINX + SSL 为 Cordova 构建配置 Meteor 构建和运行?

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:44 26 4
gpt4 key购买 nike

我有一个用于构建 Cordova android 应用程序的 Web 应用程序。该应用程序是为运行带 SSL 的 Nginx 的 ubuntu 服务器构建的(Mongo 托管在 mongolab 上)。在生产中我使用 NodeJS 0.12.X,但在开发中我仍然使用 meteor shell。

当我构建应用程序时,我运行这个命令:

meteor build  ../../build/mercanet/ --mobile-settings settings.json --server=https://myIP

当我在服务器上运行应用程序时,这里是命令(在生产服务器上我使用节点:

meteor --settings settings.json --mobile-server https://myIP --port 3000

如果我打开浏览器到https://myIp我可以检查 websocket 是否运行良好,所以我的 nginx 配置正确。但是如果我在我的 android 模拟器中打开应用程序,它无法连接:https://myIP/sockjs/info?cb=x3i8q_or0y (已取消)

我在没有 SSL 的情况下尝试过,我在 meteor shell 中用 HTTP 替换了 HTTPS 并且它起作用了,所以我想知道我应该怎么做才能将 HTTPS 与 MeteorJS 和 Cordova 一起使用。

这里的信息是 Cordova 上 meteor_runtime_config 的内容:

{"meteorRelease":"METEOR@1.2.1", "ROOT_URL":"https://myIP/", "ROOT_URL_PATH_PREFIX":"", "DDP_DEFAULT_CONNECTION_URL":"https://myIP", "autoupdateVersionCordova":"ee806cb3e614acbfaad7031f7964c254c9fc7e39", "appId":"1rm26uv1lh7ui31i489b2"}"

感谢帮助

最佳答案

这是 nGinx 配置错误。这是运行良好的配置,仅将 nodeJs 用于 websocket,将 Nginx 用于所有 Assets :

upstream my_nodejs_upstream {
server 127.0.0.1:YourNodePort;
keepalive 64;
}

server {
listen 80;
listen [::]:80;
server_name my_nodejs_server;

root /home/www/project_root;

rewrite ^(.*)$ https://YOUR_HOSTNAME$1 permanent;
}

server {
listen 443 ssl spdy;
listen [::]:443 ssl spdy;
server_name my_nodejs_server;

root /home/www/project_root;
more_clear_headers 'X-Powered-By';

ssl_certificate /etc/letsencrypt/live/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/privkey.pem;

# serve images
location ~* "^/(favicon\.ico|img\/.*\.(jpeg|jpg|gif|png))$" {
root /home/YOUR_DEPLOYED_METEOR_APP/bundle/programs/web.browser/app;
access_log off;
expires 1w;
}

# serve css and js
location ~* "^/[a-z0-9]{40}\.(css|js)$" {
root /home/YOUR_DEPLOYED_METEOR_APP/bundle/programs/web.browser;
access_log off;
expires max;
}

location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_pass http://my_nodejs_upstream/;
proxy_redirect off;
proxy_read_timeout 240s;
}
}

关于cordova - 如何通过 NGINX + SSL 为 Cordova 构建配置 Meteor 构建和运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35232760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com