ruby-on-rails - 已解决 - 带有 Nginx https 配置的 Rails Web 应用程序显示 403 被禁止
问题描述
我的 nginx 配置是:“/etc/nginx/sites-available/default”
upstream app {
server unix:/home/benhur/servidor/shared/sockets/puma.sock fail_timeout=0;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
server_name my_ip_server;
root /home/benhur/servidor/public;
index index.html index.htm index.nginx-debian.html;
}
server {
listen 80;
listen [::]:80;
server_name my_ip_server;
return 301 https://$server_name$request_uri;
root /home/benhur/servidor/public;
try_files @app $uri;
location @app {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
我忘记了什么?我做了一个自签名 SSL 配置。我在 ubuntu 18.04 上。
编辑:错误 403 显然已解决,现在我在尝试保存某些东西时得到 了:仅在尝试保存某些东西时出现错误
这是适用于 403 禁止的实际配置:“/etc/nginx/sites-available/default”
upstream app {
server unix:/home/benhur/servidor/shared/sockets/puma.sock fail_timeout=0;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
server_name 141.221.15.171;
root /home/benhur/servidor/public;
try_files $uri @app;
location @app {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
index index.html index.htm index.nginx-debian.html;
}
server {
listen 80;
listen [::]:80;
server_name 141.221.15.171;
return 301 https://$server_name$request_uri;
root /home/benhur/servidor/public;
try_files $uri @app;
location @app {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
我用这个conf解决了上面的错误:在服务器ssl块上
location @app {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http://141.221.15.171 https://141.221.15.171;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Host $host;
}
解决方案
推荐阅读
- excel - 根据搜索条件查找列名(如果值仅每行唯一)
- azure-logic-apps - 逻辑应用 HTTP 触发器如何同时支持 GET 和 POST 方法?
- python - 在 Python 中从数据框创建值数组,删除不必要的项目
- delphi - 子报表中的重复组
- linux - 大 tar 文件。如何在不解压所有内容的情况下获取根文件夹的 UID GID 属性?
- postgresql - Rails 获得最推荐的产品
- reactjs - 逐行嵌套循环JSX html图像
- r - 为什么 R 的逻辑增长输出与另一个之间存在差异?
- javascript - 如何将数组中的值映射到对象数组?
- javascript - 为什么 Angular 在向 Angular 发送 get 请求时会尝试路由我的 MVC 解决方案的 URL?