【发布时间】:2018-05-05 22:07:10
【问题描述】:
我需要帮助来解决这个问题。
我正在尝试对域 my.domain.com 实施 ssl
前端是 Angular,后端是 Meteor
我能够正确创建 ssl 证书,并且能够在加载域时获得 Secure https 标签,但由于错误而无法呈现页面
Uncaught TypeError: a._qs.unescape is not a function
来自 .build/dist/bundle/programs/web.browser 中的构建文件
Request URL:https://my.domain.com/5a0c202b90aa3cc1c9414b703c4e1f343fb0dd4e.js?meteor_js_resource=true
以下 websocket 请求将保持等待状态,状态为 101
wss://my.domain.com/sockjs/362/4q059yw7/websocket
我还没有在 Meteor 上编写任何代码来运行它到 https,我正在尝试通过 nginx 处理。
从角度添加 ssl 证书后尝试通过wss://localhost/ 而不是ws://localhost:3000/ 连接到流星
请在下面找到我的 nginx 文件。
events {
}
http {
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
server_name my.domain.com;
root /client;
index index.html;
location / {
rewrite ^ https://$server_name$request_uri? permanent;
}
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name my.domain.com;
root /client;
index index.html;
ssl_certificate /etc/letsencrypt/live/my.domain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/my.domain.com/privkey.pem; # managed by Certbot
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://localhost:3000;
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;
}
location /api {
proxy_pass http://localhost:3000;
}
location /uploadFile {
proxy_pass http://localhost:3000;
}
error_page 500 502 503 504 /50x.html;
location = /51x.html {
root /client;
}
}
}
任何线索将不胜感激。
【问题讨论】:
-
所有脚本都加载了吗?感觉好像有一个js文件没有正确加载。调试器在页面加载期间是否显示任何 404?
-
没有 404 错误消息,但网络选项卡中的 websocket 状态将始终保持为待处理。如果来自 nginx 文件的代理设置,那么我不会收到“未捕获的类型错误:a._qs.unescape 不是函数”错误
-
我在 nginx 中犯了什么错误吗? Nginx 文件在没有 wws 连接代理设置的情况下工作正常
-
我对您在这里的 NGINX 规则感到困惑。这是全部吗? Meteor 应该有一个部分,Angular 应该有另一个部分。
标签: javascript angularjs ssl nginx meteor