我的 nginx.conf 应该是什么样子来提供静态内容

What should my nginx.conf look like for serving static content

我的 nginx.conf 中有以下内容,其他内容保持原样

server {
    listen       8081;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    #location / {
        #root   html;
        #index  index.html index.htm;
    #}

    location = /console {
        proxy_pass http://localhost:7001/main/console;
        proxy_set_header        Host             $host;
        proxy_set_header        X-Real-IP        $remote_addr;
        proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;
        auth_basic "Admin Area";
        auth_basic_user_file /etc/apache2/.htpasswd;
    }
}

现在,当我启动 http://localhost:8081/console 时,它成功启动了网页,甚至要求我输入密码。

但是这个位置有一些静态内容/main/resources/org/nett/main/images/jquery-3.1.1.min.js

当我点击它时它抛出 404。我的 nginx.conf 中应该有什么来提供 /main/resources/org/nett/main/images/ 文件夹中的静态内容?

您会注意到静态内容的位置 /main/resources... 与您的任何位置都不匹配。 . resources 不在 /main/console 下,因此无法在您现有的 proxy-pass 位置下访问它。

重新考虑是否需要更改代理的路径。可以做到,但需要额外配置。如果您只是将 / 重定向到 7001:/,那么当 /main/console 处的数据引用 /main/resources 时,它也将具有通过 nginx 的有效代理路径。

如果您对 'working' 的定义意味着 /console 映射到 7001/main/console,则您必须扩展该定义以解决您希望如何映射 [=] 下的请求20=],其中更多可能尚未被发现。您还必须处理重写应用程序发回的对自身的引用(例如,如果从 /main/console 请求更多,它将与 /main/resources 下的内容有相同的问题,因为它,也,不匹配 /console。URL 在代理处重写只能在对正则表达式和 http 有很好的掌握的情况下进行,并且只有对 RTFM 有真诚和实践的意愿。它很复杂。

顺便说一句,如果您尝试向 7001 上的任何内容添加基本身份验证,请确保还对您的连接 (HTTPS) 进行加密,否则您的凭据在网络上是纯文本 (http://mark-kirby.co.uk/2013/how-to-authenticate-apis-http-basic-vs-http-digest/).