首页 > 解决方案 > 已解决 - 带有 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;
    }

标签: ruby-on-railssslnginxhttpsubuntu-18.04

解决方案


推荐阅读