- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 letsencrypt 在我的 koa2 API 上设置 HTTPS,使用 this 的最后一部分 digital ocean 指南。我正在使用 nginx 作为反向代理。使用 HTTP 时一切正常,但使用 HTTPS 时我的路由被破坏了,因为这是我第一次设置 HTTPS,所以我很难找到原因。例如,使用纯 HTTP,向 http://myapi.com/api/some-route
发出请求,我会看到一个看起来像这样的请求
{
request: {
method: 'GET',
url: '/api/some-route',
header: {
'origin': 'https://myapi.com',
accept: '*/*'
}
}
使用 HTTPS 看起来像
{
request: {
method: 'GET',
url: '//some-route',
header: {accept: '*/*' }
}
request.url 很古怪,原始 header 丢失。我无法到达我的任何路线。我想知道这是否是我的 nginx 配置有问题,但很难确定从哪里开始。
这是 nginx 配置,主要是从 the DigitalOcean guide 复制而来
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name myapi.com;
ssl on;
# Use certificate and key provided by Let's Encrypt:
ssl_certificate /etc/letsencrypt/live/myapi.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myapi.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
location /api {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:3000/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
最佳答案
尾部斜杠在 NGINX 配置中有特殊含义。我相信在 proxy_pass
中添加尾部斜杠(或者更确切地说,以斜杠结尾的路径)会设置 NGINX 用于将请求传递到的新“根”。
因此,如果您使用 http://localhost:3000/
,NGINX 会将匹配 https://your-site/api/some-route
的请求传递给http://localhost:3000//some-route
(因为它使用/
作为新的根。
如果您不添加尾部斜杠,NGINX 将按预期工作并将请求传递给 http://localhost:3000/api/some-route
:
proxy_pass http://localhost:3000;
关于node.js - Koajs 路由适用于 HTTP 但无法使用 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43298851/
在此处关注 Youtube 上的基本教程:https://www.youtube.com/watch?v=AVkTv-NOpiQ 通过 localhost:3000 或 :4444 不起作用,浏览器或
我是 Koajs ( http://koajs.com/ ) 的新手,但我已经使用了很多 Express。由于 Express 背后的团队制作了 Koa,我想尝试一下。 当我开始一个新的 expres
我目前正在尝试生成一个子进程来使用 NodeJS(使用 Koa 框架)处理一些 POST 数据。 理想情况下,我想在重定向之前等待子进程完成,但由于子进程是异步的,因此代码始终首先重定向。我已经尝试解
我今天尝试了 koajs 并编写了 helloworld 示例: /** * index.js */ var koa = require('koa'); var app = koa(); app.us
我正在尝试使用示例中的代码上传文件。但它不起作用。 在 Controller 中我编写了代码 var parse = require('co-busboy'); var fs = require('f
当我发布多部分表单时, 它抛出: Error: Unsupported content-type: multipart/form-data at Object. (e:\...\node
我正在使用 this koajs session 模块。 我检查了源代码,但我真的无法理解。 我想知道它保存 session 数据的位置,因为我没有看到创建的文件,并且当服务器重新启动时, sessi
expressjs优雅停止的例子很多,koajs如何实现? 我也想断开数据库连接 我有一个 mongoose 数据库连接和 2 个 oracle 数据库连接 ( https://github.com/
自从 iojs 合并到 Node.我假设我可以在没有 --harmony 标签的情况下运行 koajs(因为它将支持来自 es6 的生成器)。 所以在我的 server.js 文件中我有: var k
目前,WebStorm 报告说 KoaJS 的方法是未定义的。这是一个轻微但持续的烦恼。我在网上搜索过,也搜索过 WebStorm 的配置对话框无济于事。 有没有人将 WebStorm 与 KoaJS
我一直在关注如何在 openshif ( http://www.zev23.com/2014/04/openshift-harmony-nodejs.html ) 中启用自定义 Node 版本的示例,
目前,WebStorm 报告 KoaJS 的方法未定义。这是一个轻微但持续的烦恼。我在网上搜索过,也搜索过WebStorm的配置对话框,但没有结果。 是否有人将 WebStorm 与 KoaJS 一起
我的应用程序的结构类似于下面: 申请A a.js 申请B b.js 应用程序C c.js 公开 我在 public 目录中有一些静态文件。位于 ApplicationA 目录中的应用程序 a.js 如
我正在开发我的第一个 koajs 项目,在理解(或尝试)生成器函数、yield、thunk 等之后,我遇到了 mongoose(我严重依赖它)的问题。搜索论坛后,解决方案是thunkify: Coff
我正在对 Koa 进行维护(与 koa-scaffold )网络应用程序。我的客户向我询问 i18n,我开始使用 koa-i18n 。我当时使用子域(en.example.com、es.example
我希望将我的 Express 应用程序迁移到 Koa,但我不知道如何让路线和模板在 Koa 中工作。他们的官方网站上似乎有关于此的文档。 例如,这就是我在 Express 中的做法: var expr
目前,IntelliJ IDEA 报告 KoaJS 的方法未定义。 有人在 KoaJS 中使用 intellij idea 并让智能感知/代码完成正常工作吗? 最佳答案 要解决 Koa 方法,请尝试使
我正在尝试让渐进式渲染在 Marko 和 Koajs 中工作。 首先,我使用 request-promise 模块对 JSON 数据源做出 promise 。 rp = require('reques
我正在使用 letsencrypt 在我的 koa2 API 上设置 HTTPS,使用 this 的最后一部分 digital ocean 指南。我正在使用 nginx 作为反向代理。使用 HTTP
我正在尝试通过 facebook 验证 webhook。所以 facebook 在我的 nodejs 路由中点击我的 url my-url/facebook/receive 我会做 res.send(
我是一名优秀的程序员,十分优秀!