server { listen 8001 default_server; location /about/ { root html; index about.html; } }
只有这一个地方配置了 8001 端口。
打算是通过访问 http://localhost:8001/about/ 打开 html 目录下的 about.html 的,但是返回 403 错误。如果是访问 http://localhost:8001/ 会返回 html 目录下的 index.html 文件
如果注释了这里的配置,那么 http://localhost:8001/ 是无法访问的。也就是配置是起效果的,但是不是预期的效果,可能是我对配置的理解错误或者有什么其他原因导致的?
这个问题的原因可能是由于 root
和 index
指令的路径问题。在你的配置中,root
指令的路径是相对于 nginx 的工作目录的,而不是相对于 location
块。因此,你需要指定一个相对于工作目录的绝对路径。你可以尝试以下配置:
server { listen 8001 default_server; root /path/to/your/html; # 指定你的 html 文件的绝对路径 index about.html; location /about/ { try_files $uri $uri/ /about.html; # 如果 about.html 不存在,那么就尝试 index.html }}
在上述配置中,你需要将 /path/to/your/html
替换为你的实际 html 文件的路径。这样,当访问 http://localhost:8001/about/
时,nginx 将从指定的路径查找 about.html
文件。
另外,try_files
指令告诉 nginx 按照顺序尝试文件或目录。如果 $uri
对应的文件不存在,那么就尝试 $uri/
(如果它是一个目录的话),否则就尝试 /about.html
。这样,如果 about.html
不存在,那么就会尝试返回 index.html
文件。
我的nginx.conf配置如下 http { } server监听的是8081端口,然而当访问localhost:8081/main时,nginx并不能导航到对应的页面,而是报404错,请问这是什么原因呢? 【www路径下有2个html文件:index.html和i.html】
这样配置的。正常我点击Chrome的图标应该打开 http://127.0.0.1/info.php 但是打开了 http://localhost:63343/WWW/info.php?_ijt=1c1jppcqgfa3bqa70nl45gc2m0&_ij_reload=RELOAD_ON_SAVE 这么个页面。 我试了一下。要点设置为默认才行。 那我不想设置为默认啊。怎么做呢?
我有一个域名lxl.top,有两个通过docker部署在ngingx上的web前端项目log,admin, 能通过域名+端口号访问, 现在我想要通过log.lxl.top和admin.lxl.top分别访问这两个项目, 两个前缀已经在dns解析了, 在nginx配置文件中该怎么配置呢? 我的nginx配置文件如下
server 配置如下 问题是 1、把 root 放到 Localtion 中,同时注释掉 server 中的 root ,请求得到的实际路径是 /usr/local/nginx/html/ 2、应用1操作,同时把 location ~ .php(.*)$ 中 root 启用,实际请求会是 /data/wwwroot/public/index.php/index.php 多了个 index.php
如题,我实在搞不懂,官网也没看到相关说明,他们到底是拼接呢,还是代替呢,还是别的关系?整个的访问逻辑到底是怎么样的?
本文向大家介绍nginx配置location方法总结,包括了nginx配置location方法总结的使用技巧和注意事项,需要的朋友参考一下 location匹配顺序 1."="前缀指令匹配,如果匹配成功,则停止其他匹配 2.普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用^~,则停止其他匹配(正则匹配) 3.正则表达式指令匹配,按照配置文件里的顺序,成功就停止其他匹配 4.如