nginx文件系统中完全不同的文件夹中的不同位置
我目前正在使用nginx文件系统中完全不同的文件夹中的不同位置,nginx,server,nginx-location,nginx-config,Nginx,Server,Nginx Location,Nginx Config,我目前正在使用nginx为一个域名的应用程序提供服务 我需要在特定的位置提供一个完全不同的应用程序,但第二个应用程序位于文件系统中一个完全不同的文件夹中 我理解root和alias之间的区别,这要感谢您,所以我选择使用alias 配置文件类似于: server { server_name myapp.dev; root /home/apps/myapp/build; error_log /home/apps/omg-errors.log warn; index index.htm
nginx
为一个域名的应用程序提供服务
我需要在特定的位置提供一个完全不同的应用程序,但第二个应用程序位于文件系统中一个完全不同的文件夹中
我理解root
和alias
之间的区别,这要感谢您,所以我选择使用alias
配置文件类似于:
server {
server_name myapp.dev;
root /home/apps/myapp/build;
error_log /home/apps/omg-errors.log warn;
index index.htm index.html;
error_page 403 404 /404.html;
location /admin {
alias /home/apps/admin/;
}
}
我已经尝试使用根目录
,删除指向的路径末端的/admin
部分,并尝试在位置
末端添加尾部的/
,如:
location /admin/ {
...
# also this:
root /home/apps/;
}
重要而有趣的部分
在我的本地机器中使用nginx
时,相同的配置非常有效,配置如下所示:
server {
listen 80;
server_name myapp.local;
root /Users/lio/Projects/MyApp/my-app-static/build;
error_log /Users/lio/Projects/MyApp/myapp-error.log warn;
index index.htm index.html;
location /admin {
alias /Users/lio/Desktop/test-admin;
}
}
日志
以下是尝试访问/admin
路径时捕获的错误日志:
2020/02/26 04:16:57 [error] 5704#0: *7619 open() "/home/apps/myapp/build/admin" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: myapp.dev, request: "GET /admin HTTP/2.0", host: "myapp.dev"
环境
不知道是否可能是不同操作系统和软件版本的事实,但以下是nginx-V
提供的详细信息:
本地的
服务器
在第二个代码段中,还应提供/admin文件夹,如下所示:
location /admin/ {
...
# also this:
root /home/apps/admin;
}
否则,要访问管理区域,您需要键入yourdomain.tld/admin/admin(作为最后一个/admin)是您的root/home/apps
声明中缺少的/admin
这对你来说够了吗?经过大量的尝试,我找到了窍门,那就是^ ~
location ^~ /admin/ {
alias /home/apps/admin/;
}
简单但(至少对我来说)棘手
两篇文章/帖子帮助我更好地理解了位置问题。谢谢@hugo regibo。我显示第二个代码片段只是想让大家知道,它也尝试了使用root
和alias
的所有组合,但仍然失败。我将更新问题,添加错误日志
,该日志显示服务器
正在尝试服务器块中主根
中的文件。无论如何谢谢你!
location /admin/ {
...
# also this:
root /home/apps/admin;
}
location ^~ /admin/ {
alias /home/apps/admin/;
}