Mapping a url path to a server in nginx

2020-04-02 09:51发布

How can I map a URI of the form staging.example.com/siteA to a virtual server located at /var/www/siteA?

The main restriction is that I do not want to create a subdomain for siteA. All examples of nginx.conf I've seen so far rely on having a subdomain to do the mapping.

Thanks

标签: nginx
1条回答
Ridiculous、
2楼-- · 2020-04-02 10:25

You may use the root directive within a location block, like this:

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

Then http://staging.example.com/foo.txt points to /some/other/location/foo.txt, while http://staging.example.com/siteA/foo.txt points to /var/www/siteA/foo.txt.

Note that the siteA directory is still expected to exist on the filesystem. If you want http://staging.example.com/siteA/foo.txt to point to /var/www/foo.txt, you must use the alias directive:

location /siteA/ {
    alias /var/www;
}
查看更多
登录 后发表回答