ruby-on-rails - 无法使用 nginx 调用我的 rails 服务器,得到 Puma::HttpParserError
问题描述
我的 nginx / puma 配置有问题。当我启动我的 Rails 服务器并尝试与之交互时,什么也没有发生,我的请求被卡在浏览器网络中。此外,我在控制台中收到此错误:
HTTP parse error, malformed request (): #<Puma::HttpParserError: Invalid HTTP format, parsing fails.>
我在端口 3000 上运行 ngrok,但即使它没有运行,我仍然会收到错误消息。
我看到了很多类似的问题(比如这个没有答案的问题),但没有一个对我有帮助:(
我已经用 nginx 检查了我的 ssl 配置,它禁用了
grep -r ssl_protocol /etc/nginx
给的输出/etc/nginx/nginx.conf: ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
正如预期的那样
我已经清除了浏览器缓存/历史记录和 cookie + 重新启动了我的 nginx 服务和 rails 服务器
config.force_ssl
在我的环境/develop.rb 中被注释掉了(我肯定在这个环境中工作)所以我想我在 https 中没有连接我还注释掉了 ipv6 conf
/etc/hosts
并设置了这两行:127.0.0.1 localhost 127.0.0.1 app.example.com
这是我的默认配置的一部分:
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://app.example.com:9000;
}
location /uploads/ {
proxy_pass https://example.s3.amazonaws.com/uploads/;
}
location /archives/ {
proxy_pass https://example.s3.amazonaws.com/archives/;
}
location /container/ {
proxy_pass https://example.s3.amazonaws.com;
}
}
有什么我忘了在这里检查吗?我不太习惯使用导轨,也许我错过了一些基本的东西:)
解决方案
弄清楚发生了什么:我试图将我的 API 与一个角前端引擎连接起来,我在这里缺少的是我有一个 oauth conf 可以使用 https 而不仅仅是 http 添加到角环境文件中。
base_url: "http://localhost:3000/",
oauth: "https://localhost:3000/",
它与我的 Rails 服务器无关,也不是 nginx !
推荐阅读
- c - c语言中使用函数和结构的复数计算器
- excel - 如何在 vba 中读取这个复杂的 .xml?.SelectNodes() 的问题
- c++ - 如何使用非捕获组在标记之间用 std::regex_replace 替换空格?
- r - 在 R 中使用 dplyr 进行回归插补
- c# - 将输入字段绑定到模型时不显示 HTML 输入字段占位符
- python - 在python中通过字符串条件提取列表中的字典的一部分
- reactjs - React Admin 根据权限渲染资源
- tkinter - 在 unittest 中检查方法响应不为空如何正确?
- powershell - PowerShell,无法获取 LastWriteTime
- python - 如何中断已经在 Python (APScheduler) 中运行的函数?