将 url 路径映射到 nginx 中的服务器

Posted

技术标签:

【中文标题】将 url 路径映射到 nginx 中的服务器【英文标题】:Mapping a url path to a server in nginx 【发布时间】:2013-11-09 15:33:07 【问题描述】:

如何将 staging.example.com/siteA 形式的 URI 映射到位于 /var/www/siteA 的虚拟服务器?

主要限制是我不想为 siteA 创建子域。到目前为止,我看到的所有 nginx.conf 示例都依赖于有一个子域来进行映射。

谢谢

【问题讨论】:

【参考方案1】:

您可以在location 块中使用root directive,如下所示:

server 
    server_name staging.example.com;
    root /some/other/location;
    location /siteA/ 
        root /var/www/;
    

那么http://staging.example.com/foo.txt 指向/some/other/location/foo.txt,而http://staging.example.com/siteA/foo.txt 指向/var/www/siteA/foo.txt

请注意,siteA 目录仍应存在于文件系统中。如果你想让http://staging.example.com/siteA/foo.txt 指向/var/www/foo.txt,你必须使用alias directive:

location /siteA/ 
    alias /var/www;

【讨论】:

以上是关于将 url 路径映射到 nginx 中的服务器的主要内容,如果未能解决你的问题,请参考以下文章

Nginx服务器作反向代理实现内部局域网的url转发配置

nginx重新整理——————http请求的11个阶段中的content阶段[十八]

使用 RESTKit 将 url 参数映射到对象

Nginx配置静态资源

nginx反向代理配置相对路径

nginx代理转发url接口请求路径到spring boot后端实现真正响应