1 nginx.conf文件中配置
- 假设静态资源放在服务器
/home/data/
user root; # 启动用户
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on; # 打开gzip压缩,可以减少带宽
server {
listen 80; # 1.指定端口
server_name dlib; # 2.服务名
location /data/ {
alias /home/data/; # 3.指定静态文件目录
autoindex on; # 自动索引
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
- 或者
user root; # 启动用户
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on; # 打开gzip压缩,可以减少带宽
server {
listen 80; # 1.指定端口
server_name dlib; # 2.服务名
location /data/ {
root /home/; # 3.指定静态文件目录
autoindex on; # 自动索引
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
- 重启nginx
nginx -s reload
2 二者区别
在Nginx配置中,
alias
和root
是两个用于指定文件系统路径的指令,但它们在用法和行为上有一些重要的区别:
-
alias
-
alias
指令用于将 URL 路径的一部分映射到文件系统的不同位置。 -
它允许你将 URL 中的一部分路径与文件系统中的完全不同的路径关联起来。
-
alias
通常用于创建虚拟目录,其中 URL 中的路径部分与文件系统中的路径不一致。 -
当使用
alias
时,Nginx会将 URL 路径与location
块中指定的alias
路径拼接在一起,然后在文件系统中查找文件。
-
nginxCopy code
location /images/ {
alias /var/www/images/;
}
在上述示例中,如果访问
http://yourdomain.com/images/pic.jpg
,Nginx会查找/var/www/images/pic.jpg
。
-
root
-
root
指令用于设置一个目录,该目录是请求的 URL 路径的基础部分。 -
它将 URL 路径直接映射到文件系统中的路径,URL 路径的开头部分与文件系统路径一致。
-
root
通常用于将请求直接映射到文件系统中的目录,而不需要额外的路径拼接。 -
当使用
root
时,Nginx会将 URL 路径直接映射到指定的根目录。
-
nginxCopy code
location /data/ {
root /var/www/;
}
在上述示例中,如果访问
http://yourdomain.com/data/file.txt
,Nginx会查找/var/www/data/file.txt
。
总结:alias
用于创建虚拟目录,可以将 URL 路径与文件系统中的不同路径关联,而 root
用于将 URL 路径直接映射到文件系统中的目录。你可以根据需要选择合适的指令来配置 Nginx 以满足你的要求。