我的 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/).
我的 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/).