【Nginx】配置location root

本文介绍了Nginx中root和alias指令的区别。alias指定的目录是准确的,而root则是指定目录的上级目录,需要包含location指定的同名目录。在配置alias支持PHP fastcgi解析时需注意,alias目录后需加"/",并且与root不同,它允许组合路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://jasonhzy.github.io/2016/08/25/nginx-alias-root/

http://blog.youkuaiyun.com/21aspnet/article/details/6583335

 

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

最基本的区别

alias 指定的目录是准确的,给location指定一个目录。
root 指定目录的上级目录,并且该上级目录要含有locatoin指定名称的同名目录

以root方式设置资源路径:

语法: root path;
配置块: http、server、location、if

以alias 方式设置资源路径

语法: alias path;
配置块: location

Example:

### 正确设置 Nginx 配置文件中的 `root` 路径 在 Nginx 中,`root` 指令用于指定提供给客户端请求的文件所在的根目录。当客户端通过 URL 请求某个资源时,Nginx 将会把该资源相对于 `root` 指定的路径解析出来并返回。 #### 基本语法 以下是 `root` 指令的基本语法: ```nginx root path; ``` 其中,`path` 表示文件系统的绝对路径[^1]。 #### 示例配置 假设有一个网站部署在 `/var/www/html/example.com/public_html` 下面,并希望用户可以通过域名访问到这个站点的内容,则可以在 Nginx配置文件中这样定义: ```nginx server { listen 80; server_name example.com; location / { root /var/www/html/example.com/public_html; # 设置根目录 index index.html index.htm; # 默认索引页面 } } ``` 在这个例子中,如果用户访问的是 `http://example.com/file.txt` ,那么 Nginx 实际上会尝试读取 `/var/www/html/example.com/public_html/file.txt` 文件来响应用户的请求[^3]。 #### 注意事项 需要注意的一点是,在某些情况下可能会混淆 `root` 和另一个类似的指令——`alias` 。虽然两者都可以用来改变 URI 映射的实际物理位置,但是它们的工作机制有所不同。对于简单的映射关系来说,推荐优先考虑使用 `root` 指令[^4]。 另外,为了验证配置是否正确无误,在修改完配置之后应当执行命令检查配置的有效性: ```bash sudo nginx -t ``` 如果一切正常的话,应该可以看到如下提示信息: ``` nginx: configuration file /etc/nginx/nginx.conf test is successful ``` 这表明当前所做的更改不会引起任何错误[^2]。 最后一步就是重新加载服务使新设定生效而无需中断现有连接: ```bash sudo systemctl reload nginx ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值