Mapping a url path to a server in nginx

2020-04-02 09:42发布

问题:

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

回答1:

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;
}


标签: nginx