docker NGINX服务器子位置问题

时间:2019-09-04 06:00:35

标签: docker nginx

我有以下NGINX,对于root https /可以正常使用。但是,每当我尝试将location / {更改为location /example {之类的子域时,它都会破坏一切。如果您转到domain.com/exmaple,则无论您身在何处,都会带404错误。

    ############## Jupyter ####################
    server {
        listen      0.0.0.0:443 ssl;
        server_name   domain.com
                      www.domain.com;

        ssl_certificate     /etc/nginx/self.crt;
        ssl_certificate_key /etc/nginx/self.key;

        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
        ssl_session_cache  builtin:1000  shared:SSL:10m;

        access_log  /var/log/nginx/jupyter.log ;
        error_log  /var/log/nginx/jupyter.error.log debug;

        location / {
          proxy_set_header        Host $host;
          proxy_set_header        X-Real-IP $remote_addr;
          proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header        X-Forwarded-Proto $scheme;
          proxy_pass              http://jupyter;
          proxy_read_timeout      90;
        }

        location ~* /(api/kernels/[^/]+/(channels|iopub|shell|stdin)|terminals/websocket)/? {
           proxy_pass http://jupyter;

           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           # WebSocket support
           proxy_http_version 1.1;
           proxy_set_header      Upgrade "websocket";
           proxy_set_header      Connection "Upgrade";
           proxy_read_timeout    86400;

        }
    }

}

1 个答案:

答案 0 :(得分:0)

您在nginx配置中缺少了 root 参数。

您应该在指南中查看如何使用它http://nginx.org/en/docs/beginners_guide.html

它报告您应该做类似

location / {
    root /var/www/webapp/public; // something like that
    // .. config
}

location ~* /(api/kernels/[^/]+/(channels|iopub|shell|stdin)|terminals/websocket)/? {
    root /var/www/webapp/api; // something like that
    // .. config
}