IOS设备无法连接到digitalocean上的nginx托管的meteor应用程序

时间:2016-09-18 21:42:15

标签: ios ssl meteor nginx

我有一个托管在digitalocean上的meteor应用程序,但我的ios移动应用程序无法连接到digitalocean上的服务器。没有错误,但我无法登录,这表明它无法连接。

所以,这是设置和我要测试的步骤。我没有列出版本号,因为我认为我在做一些概念上不正确的事情。

在DigitalOcean上我运行nginx。这是/ etc / nginx中的配置文件:

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

# HTTP
server {
  listen 80;

  location / {
    rewrite     ^ https://$server_name$request_uri? permanent;
  }
}

# HTTPS server
server {
  listen 443 ssl;

  server_name pressit.capitalmarkettools.org;

  ssl_certificate /etc/nginx/ssl/server.crt;
  ssl_certificate_key /etc/nginx/ssl/server.key;

#...

  location / {
         proxy_pass http://127.0.0.1:3100;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade; # allow websockets
         proxy_set_header Connection $connection_upgrade;
         proxy_set_header X-Forwarded-For $remote_addr; # preserve client IP
#....
  }
}

然后,我使用以下运行脚本运行我的meteor应用程序:

#!/bin/bash
export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
export BIND_IP=127.0.0.1
export PORT=3100
export HTTP_FORWARDED_COUNT=1
export MONGO_URL=mongodb://localhost:27017/pressit
export ROOT_URL=https://pressit.capitalmarkettools.org
export METEOR_SETTINGS='{ "somesetting": "someval", "public": { "othersetting": "anothervalue" } }'

cd /root/pressit/bundle
node /root/pressit/bundle/main.js > /root/log/pressit.log&

在DigitalOcean上,区域文件是:

$ORIGIN pressit.capitalmarkettools.org.
$TTL 1800
pressit.capitalmarkettools.org. IN SOA ns1.digitalocean.com. hostmaster.pressit.capitalmarkettools.org. 1473473851 10800 3600 604800 1800
pressit.capitalmarkettools.org. 1800 IN NS ns1.digitalocean.com.
pressit.capitalmarkettools.org. 1800 IN NS ns2.digitalocean.com.
pressit.capitalmarkettools.org. 1800 IN NS ns3.digitalocean.com.
pressit.capitalmarkettools.org. 1800 IN A 67.205.136.200

因此,该网站适用于https://pressit.capitalmarkettools.org

然而,当我在我的本地开发机器上执行以下命令时,模拟器应用程序无法连接到服务器机器(我尝试了所有这些)。

meteor run ios --mobile-server https://pressit.capitalmarkettools.org:80
meteor run ios --mobile-server https://pressit.capitalmarkettools.org
meteor run ios --mobile-server https://67.205.136.200:3100
meteor run ios --mobile-server https://pressit.capitalmarkettools.org:3100

当我在本地运行meteor并对localhost:3000运行模拟器时,它运行良好。

还有一个评论是我的ssl设置不使用商业证书,当我第一次连接到https://pressit.capitalmarkettools.org时,浏览器会警告非安全连接。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

此问题是由CA未拥有SSL证书引起的。通过将safari连接到设备以调试错误消息,说明SSL是问题,并且使用letsencrypt我创建了一个新的SSL而不是它正常工作。