javascript - 反向代理 nginx 没有那个文件或目录

标签 javascript nginx proxy

我正在尝试设置启用 SSL 的 nginx 反向代理。 Nginx 具有 SSL 证书和 key 。后端服务器不与 Nginx 进行 SSL 通信(它位于 DMZ 本地网络设置中,所以我想没问题)。

我的问题是:发生代理通过时,错误日志显示很多“没有这样的文件或目录”。它会将我带到后端应用程序的 404 错误页面。


这是一些错误行:

2052#2052: *9 open() "/etc/nginx/html/scripts/msptagutils.js"失败(2:没有那个文件或目录),客户端:189.68.143.17,服务器:www.example.com .br,请求:“GET/scripts/msptagutils.js?build=9301 HTTP/1.1”,主机:www.example.com.br,推荐人:https://www.example.com.br/servicedesk/

2052#2052: *9 open() "/etc/nginx/html/style/sdmspstyle.css"失败(2:没有那个文件或目录),客户端:189.68.143.17,服务器:www.example.com .br,请求:“GET/style/sdmspstyle.css?build=9301 HTTP/1.1”,主机:www.example.com.br,推荐人:https://www.example.com.br/servicedesk/

2052#2052: *1 open() "/etc/nginx/html/ze/css/gray/ze.min.css"失败(2:没有那个文件或目录),客户端:189.68.143.17,服务器:www.example.com.br,请求:“GET/ze/css/gray/ze.min.css HTTP/1.1”,主机:“www.example.com.br”,引用者:“https://www.example.com.br/servicedesk/


这是 servicedesk.conf 文件:

server {
    ### server port and name ###
    listen          443;
    ssl             on;
    server_name     www.example.com.br;

    ### SSL log files ###
    access_log      /var/log/nginx/servicedesk-ssl-access.log;
    error_log       /var/log/nginx/servicedesk-ssl-error.log;

    ### SSL cert files ###
    ssl_certificate      /etc/nginx/ssl/www.example.com.br-chained.crt;
    ssl_certificate_key  /etc/nginx/ssl/example.com.br.key;

    ### Add SSL specific settings here ###


    ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers RC4:HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    keepalive_timeout    60;
    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout  10m;

    ### We want full access to SSL via backend ###
    location /servicedesk {
            proxy_pass  http://servicedesk-site.example.local;

            ### force timeouts if one of backend is died ##
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;



            ### Set headers ####
            proxy_set_header        Accept-Encoding   "";
            proxy_set_header        Host            $host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

            ### Most PHP, Python, Rails, Java App can use this header ###
            #proxy_set_header X-Forwarded-Proto https;##
            #This is better##
            proxy_set_header        X-Forwarded-Proto $scheme;
            add_header              Front-End-Https   on;


            ### By default we don't want to redirect it ####
            proxy_redirect     off;
  }


大佬们能指点一下吗?我做错了什么?

最佳答案

看起来您只是在代理路径 /servicedesk 的请求。

日志显示对 nginx 尝试在本地解析的 /scripts/msptagutils.js 的访问。如果 nginx 只进行 SSL 卸载,那么这些请求也应该传递到后端。所以只代理完整路径 /

server {
    ...
    location / {
        prox_pass ...
    }
}

关于javascript - 反向代理 nginx 没有那个文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47017142/

相关文章:

javascript - reject() 和 return 不会终止执行

php - 使用 NTLM 身份验证在代理服务器后面的 Windows 上安装 Symfony

node.js 通过代理的 Https 请求失败

javascript - 加载资源失败:net::ERR_FILE_NOT_FOUND 加载 json.js

javascript - 将图像数据传递到另一个页面

javascript - 使用 OpenUI5 和 Apache Cordova 的本地存储

nginx - 具有Nginx的Elasticsearch Client与不具有Nginx的Elasticsearch Client

nginx - "configuration file/etc/nginx/nginx.conf test failed": How do I know why this happened?

php - 如何检测 PHP pfsockopen 被远程服务器关闭?

java - 拦截Java字段和方法访问,创建代理对象