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