簡體   English   中英

反向代理nginx沒有這樣的文件或目錄

[英]reverse proxy nginx no such file or directory

我正在嘗試設置啟用 SSL 的 nginx 反向代理。 Nginx 具有 SSL 證書和密鑰。 后端服務器不與 Nginx 進行 SSL 通信(它位於 DMZ 本地網絡設置上,所以我想這沒問題)。

我的問題是:代理pass發生時,錯誤日志顯示很多'沒有這樣的文件或目錄'。 它帶我到后端應用程序的 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" failed (2: No such file or directory), client: 189.68.143.17, server: 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 ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM