nginx如何找到默认根目录(root html)

nginx如何找到默认根目录(root html)

nginx的出场配置

server {
        listen       80;
        server_name  127.0.0.1;

        location / {    
            root   html;    # 这是一个相对路径
        }

        error_page  404              /404.html;     #当状态码为400则转到/404.html
        error_page   500 502 503 504  /50x.html;    #当状态码为50x.. 则转到/50x.html
        location = /50x.html {
            root   html;
        }
}

系统上nginx配置文件在/etc/nginx/nginx.conf,服务index.html的位置是/var/lib/nginx/html/index.html。现在,看看上面的配置,nginx是如何根据配置找到/var/lib/nginx/html/index.html

解答

这就涉及到nginx查找相对路径的机制。nginx会把--prefix拼接到相对路径的前面,共同组成一个完整的路径。

--prefix在不同的环境中安装可能都是不一样的。可以通过nginx -V查看到相关配置

nginx -V
nginx version: nginx/1.24.0
built with OpenSSL 3.1.0 14 Mar 2023
TLS SNI support enabled
configure arguments: --prefix=/var/lib/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --pid-path=/run/nginx/nginx.pid --lock-path=/run/nginx/nginx.lock --http-client-body-temp-path=/var/lib/nginx/tmp/client_body 
......
......

可以看到上面--prefix=/var/lib/nginx,因此此时nginx查找的html的完整路径是 /var/lib/nginx/html

猜你喜欢

转载自blog.csdn.net/mochenangel/article/details/131006320
今日推荐