nginx一个server配置多个location

如果想要使用nginx部署多个前端项目或者一些静态资源的话。

我们可以使用nginx作为一台服务器使用。

1.使用不同的端口号来映射不同的资源,这样在请求url上就必须带有端口号

2.同一个80端口号,配置不同的location,每个location对应一个资源,例如使用80端口,location / 访问网站; location /tmp 访问静态文件

方式一:

http {
    server {
        listen       80;
        server_name  ip;

        location ~/group([0-9])/M00/{
                root /data/fastdfs/data;
                ngx_fastdfs_module;
        }

        location /tmp/ {
            root /root/java;
        }
    }
}

方式二:

http {
    server {
        listen       80;
        server_name  ip;

        location ~/group([0-9])/M00/{
                root /data/fastdfs/data;
                ngx_fastdfs_module;
        }

        location /tmp/ {
            alias /root/java/tmp/;
        }
    }
}

root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。

root:root路径+location路径     即:/root/java/tmp/

alias:使用alias路径替换location路径 即:/root/java/tmp/

alias是一个目录别名的定义,root则是最上层目录的定义。

还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的,而root则可有可无

部署前端网站实例举例:(参考)注:前端项目放在/root/www/ 文件夹下

# 前端网站配置实例
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    server {
        listen 80;
        server_name (ip或者域名);


        location / {
            root   /root/www/admin;
            try_files $uri $uri/ /index.html;
        }

        location /pc {
            root   /root/www;
            try_files $uri $uri/ /index.html;
                                 
        }

        location /shop {
            root   /root/www;
            try_files $uri $uri/ /index.html;
                                 
        }
   }
}

 

posted @ 2021-12-15 00:01  keyboard达人  阅读(5890)  评论(0编辑  收藏  举报