如何解决如何使用 nginx 将不同的网络服务器路由到不同的 URL
为我自己创建一个网站并且需要托管项目。
基本上,我有不同框架的不同项目。即 Flask、Django、Node.JS 和一些 html 文件项目。我想在 projects.domain.com/<project name>
我尝试设置 server_name projects.domain.com/asdf
,但在 error.log 中显示, server name "projects.domain.com/asdf" has suspicious symbols
接下来,我尝试嵌套位置块(我认为这不是它应该的样子)
location /asdf {
location /static/ {
root blah blah;
}
location / {
..
proxy_pass http://localhost:3000 ;
}
}
但是,这个错误说 location static 在 asdf 之外
有些人建议在位置 /static/ 块中使用 alias
而不是 root
,但这也不起作用。
感谢任何帮助:)
解决方法
首先,server_name
不能包含 URI 段。因此,应使用主机名或 IP 作为值。
如果您想混合不同的本地目录和代理位置,配置可能如下所示。
注意:您的位置 URI(/one、/two)将附加到根路径。
root
指令可用于每个位置块以设置文档根。
http://nginx.org/en/docs/http/ngx_http_core_module.html#root
这就是 alias
存在的原因。使用 alias
时,该位置将不是目录路径的一部分。看一下这个:
http://nginx.org/en/docs/http/ngx_http_core_module.html#alias
server {
server_name project.domain.com;
listen 80;
location / {
proxy_pass http://localhost:3000;
}
location /one/ {
alias/var/www/html/project1/;
index index.html;
}
location /two/ {
alias/var/www/html/project2/;
index index.html;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。