我有一个托管在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时,浏览器会警告非安全连接。
非常感谢任何帮助。
答案 0 :(得分:0)
此问题是由CA未拥有SSL证书引起的。通过将safari连接到设备以调试错误消息,说明SSL是问题,并且使用letsencrypt我创建了一个新的SSL而不是它正常工作。