首页 > 解决方案 > 基于 Nginx 重定向请求的路径变量

问题描述

我有一个 html Web 服务器在我的 EC2 实例上的端口 80 (HTTP) 上运行。我使用 Nginx 作为反向代理(也安装在实例上),根据路径('/blue')将请求从端口 8080 重定向到我的 HTML Web 服务器。所以我请求 HTTP://ec2_instance_dns:8080/blue 并希望重定向到 HTTP://ec2_instance_dns:80。但是,我在根据路径变量重定向请求时遇到问题。我的 /etc/nginx/conf.d/deafult.conf 附在下面:

server {
    listen                      8080;
    server_name                 default;
    client_max_body_size        32M;
    underscores_in_headers      on;

    root                        /var/www/html/index.html;

    location /blue {
        proxy_set_header        Upgrade $http_upgrade;
        proxy_set_header        Connection "upgrade";
        proxy_http_version      1.1;
        proxy_set_header        Host $host;
        proxy_read_timeout      120;
        proxy_next_upstream     error timeout invalid_header http_500;
        proxy_connect_timeout   90;
        proxy_pass              http://localhost:80;
    }
}

我的 /etc/nginx/nginx.conf 附在下面:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    server {
        listen       8080;
        listen       [::]:8080;
        server_name  localhost;
        root         /var/www/html/index.html;

        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

尝试请求 HTTP://ec2_instance_dns:8080/blue 时出现上述错误:在此处输入图像描述

我应该做什么进一步的配置?谢谢你。

标签: nginxamazon-ec2nginx-reverse-proxy

解决方案


推荐阅读