首页 > 解决方案 > Nginx 在针对特定子域时抛出 404 错误代码

问题描述

我很难将 nginx 配置为反向代理。让我们看看我想要实现的目标:在此处输入图像描述

这个想法是让 Nginx 处理对内部网络的所有 Web 请求,并根据子域重定向到好的请求。

为了实现它,我为每个域创建了一个配置文件。第一个重定向到 App1 工作正常。我很难对付第二个。

这是我的 subdomain2.company.com.conf

    log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name $host to: $upstream_addr: $request $status upstream_response_time $upstream_response_time msec $msec request_time $request_time';
underscores_in_headers on;
upstream connecteddevice {
        server 192.168.1.21:8021;
}

server {
    listen 80;
    server_name www.connecteddevice.company.com connecteddevice.company.com;
    include snippets/letsencrypt.conf;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.connecteddevice.company.com;

    ssl_certificate /etc/letsencrypt/live/connecteddevice.company.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/connecteddevice.company.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/connecteddevice.company.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://connecteddevice.company.com$request_uri;
}

server {
        listen 443 ssl http2;
        server_name connecteddevice.company.com;
        error_log /var/log/nginx/connecteddevice.company.com.error.log;
        access_log /var/log/nginx/connecteddevice.company.com.access.log upstreamlog;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        ssl_certificate /etc/letsencrypt/live/connecteddevice.company.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/connecteddevice.company.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/connecteddevice.company.com/chain.pem;
        include snippets/ssl.conf;
        include snippets/letsencrypt.conf;

    location / {
        proxy_pass http://connecteddevice/;
    }

    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

问题是,使用此配置,在域的根目录处请求 js 文件会返回 404。当我直接调用http://192.168.1.21:8021/webportal.js时一切正常,但调用https://subdomain2.company .com/webportal.js返回 404,响应正文包含 index.html。css 请求也是如此。

我所做的有什么问题?

谢谢您的帮助 :)

标签: nginxsubdomainconfigreverse-proxy

解决方案


推荐阅读