angular - 如何通过 HTTPS 提供内容
问题描述
我创建了一个应用程序并将其部署在 DigitalOcean 上,并且我有一个 SSL 证书。有 2 个独立的服务器,1 个用于 angular,它有一个用于 https 重定向的平衡器加载器,一个用于后端,但是当我打开网站时,我在控制台中得到了这个。
Mixed Content: The page at 'https://www.mirrorate.com/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://165.22.187.137/api/posts?pagesize=2&page=1'. This request has been blocked; the content must be served over HTTPS.
有人可以解释一下吗?或者我如何解决这个问题,谢谢!
解决方案
为了安全起见,您不能通过 http 进行 https 调用。
要解决您的问题,您可以设置 nginx 通过 https 代理您的 http 后端 url。使用 nginx 服务器,您需要调用您的 api,如https://your_domain/api/some_path和 nginx 会将您的请求代理到 api 主机,您将在配置中设置
示例配置。PS - 不要忘记更改您的证书文件路径:
# if you have sockets
upstream socket {
ip_hash;
server host:port fail_timeout=0;
}
server {
listen [::]:443 ssl ipv6only=on;
listen 443 ssl default_server;
root /usr/share/nginx/html;
index index.html index.htm;
include /etc/nginx/mime.types;
client_max_body_size 50M;
# server_name YOUR_SERVER_NAME
ssl_certificate /fullchain.pem;
ssl_certificate_key /privkey.pem;
include /options-ssl-nginx.conf;
ssl_dhparam /ssl-dhparams.pem;
location /ws/ {
proxy_pass http://socket;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /api {
proxy_pass http://host:port/api;
}
location / {
try_files $uri $uri/ /index.html;
}
}
推荐阅读
- asp.net-mvc - ASP.NET MVC - 设置 cookie 在 chrome 中不起作用
- python - 执行系统检查的python runserver无限期停留
- python - 如何在python中使用以下以数字开头的文件路径?
- javascript - jquery ajax - 使用复选框更新不起作用
- yum - RHEL 7.2 中的 Fiware Orion contextbroker 安装错误:包不存在
- python - 从python中经常更新的excel表中读取数据
- android - 如何在分页无尽RecyclerView中跳过空白页面?
- express - 无法通过 express/node 应用 css
- webgl - 问:为什么当 alpha 为零时 sampler2d 总是返回 vec4(0.0)?
- postgresql - 无法通过终端连接到 postgresql-10 服务器(Ubuntu 14.04 LTS)