Nginx同一个server部署多个静态资源目录

今天配置nginx的时候需要将两个静态文件放到一个域名下,配置了好久,最后发现是就是root和alias 的区别。

成功案例:

访问www.test.com/  会进入 /home/icbc/html

访问www.test.com/game/luck 会进入 /home/icbc/gameluck/html

 server{
        listen 80;
        #对应域名
        server_name www.test.com;
        ssl_certificate 7766945_asian.cardwinner.com.pem;
        ssl_certificate_key 7766945_asian.cardwinner.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
      

        location / {
                root  /home/icbc/html;
                index index.html;
        }
        
        location /game/luck {
            alias /home/icbc/gameluck/html;
            index index.html;      
        }
        location ^~/api{
 		proxy_pass http://127.0.0.1:8088/;
        }
        location ^~/ws/{
 		 proxy_pass https://apis.map.qq.com/ws/;
        }

        location ^~/icbc{
 		proxy_pass http://127.0.0.1:8099/;
        }
    }

Nginx中alias与root的区别:

Nginx指定文件路径有两种方式root和alias,这两者的用法区别在于对URI的处理方法不同。

举例: 

alias :

location /abc/{

alias /usr/local/nginx/html/admin/;

}

若按照上述配置的话,则访问/abc/目录里面的文件时,ningx会自动去/usr/local/nginx/html/admin目录找文件。

root:

location /abc/ {

root /usr/local/nginx/html/admin;

}

若按照这种配置的话,则访问/abc/目录下的文件时,nginx会去/usr/local/nginx/html/admin/abc下找文件。

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

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

你可能感兴趣的:(nginx,https,ssl)