详解nginx.conf 中 root 目录设置问题

详解nginx.conf 中 root 目录设置问题,第1张

详解nginx.conf中root目录设置问题

本文主要详细介绍了nginx.conf中设置根目录的问题,并且通过示例代码非常详细,对于大家的学习或者工作都有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。

配置nginx.conf总会遇到一些问题下面是一些常见问题以及解决方法。

1。相对路径的问题

例如在配置文件中设置位置。

location~.php${ roothtml }

位置根指向的html是相对路径,是这个配置文件的路径。假设这个配置文件的位置是/etc/nginx/conf.d,那么这个html的绝对路径就是/etc/nginx/conf.d/html。所以,为了避免不必要的麻烦,在配置根路径的过程中,最好使用绝对路径。

2。路径继承的问题

2.1第一种情况

如果服务器声明:

root/usr/share;

该位置声明:

location/{ root/usr/html/www }

在这种情况下,将首先使用location中的路径。

2.2第二种情况

如果根路径未在位置中声明:

location/app{ }

默认情况下,使用由root外部位置声明的路径。

3。设置首页的问题

如果我们在声明服务器中声明:

索引index.htmlindex.php

然后,我们的请求/将在内部被重定向到url/index.php或url/index.html
,然后在被解析之前由相关位置进行匹配

nginx.conf文件详细说明

官网URL:Nginx中文文档中各模块参数配置说明

##代码块中的events、http、server、location、upstream等都是块配置项## ##块配置项可以嵌套。内层块直接继承外层快,例如:server块里的任意配置都是基于http块里的已有配置的## ##Nginxworker进程运行的用户及用户组 #语法:userusername[groupname]默认:usernobodynobody #user用于设置master进程启动后,fork出的worker进程运行在那个用户和用户组下。当按照"userusername;"设置时,用户组名与用户名相同。 #若用户在configure命令执行时,使用了参数--user=usergroup和--group=groupname,此时nginx.conf将使用参数中指定的用户和用户组。 #usernobody; ##Nginxworker进程个数:其数量直接影响性能。 #每个worker进程都是单线程的进程,他们会调用各个模块以实现多种多样的功能。如果这些模块不会出现阻塞式的调用,那么,有多少CPU内核就应该配置多少个进程,反之,有可能出现阻塞式调用,那么,需要配置稍多一些的worker进程。 worker_processes1; ##ssl硬件加速。 #用户可以用OpneSSL提供的命令来查看是否有ssl硬件加速设备:opensslengine-t #ssl_enginedevice; ##守护进程(daemon)。是脱离终端在后台允许的进程。它脱离终端是为了避免进程执行过程中的信息在任何终端上显示。这样一来,进程也不会被任何终端所产生的信息所打断。## ##关闭守护进程的模式,之所以提供这种模式,是为了放便跟踪调试nginx,毕竟用gdb调试进程时最繁琐的就是如何继续跟进fork出的子进程了。## ##如果用off关闭了master_proccess方式,就不会fork出worker子进程来处理请求,而是用master进程自身来处理请求 #daemonoff;#查看是否以守护进程的方式运行Nginx默认是on #master_processoff;#是否以master/worker方式工作默认是on ##error日志的设置# #语法:error_log/path/filelevel; #默认:error_log/log/error.logerror; #当path/file的值为/dev/null时,这样就不会输出任何日志了,这也是关闭error日志的唯一手段; #leve的取值范围是debug、info、notice、warn、error、crit、alert、emerg从左至右级别依次增大。 #当level的级别为error时,error、crit、alert、emerg级别的日志就都会输出。大于等于该级别会输出,小于该级别的不会输出。 #如果设定的日志级别是debug,则会输出所有的日志,这一数据量会很大,需要预先确保/path/file所在的磁盘有足够的磁盘空间。级别设定到debug,必须在configure时加入--with-debug配置项。 #error_loglogs/error.log; #error_loglogs/error.lognotice; #error_loglogs/error.loginfo; ##pid文件(master进程ID的pid文件存放路径)的路径 #pidlogs/nginx.pid; events{ #仅对指定的客户端输出debug级别的日志:语法:debug_connection[IP|CIDR] #这个设置项实际上属于事件类配置,因此必须放在events{……}中才会生效。它的值可以是IP地址或者是CIRD地址。 #debug_connection10.224.66.14;#或是debug_connection10.224.57.0/24 #这样,仅仅以上IP地址的请求才会输出debug级别的日志,其他请求仍然沿用error_log中配置的日志级别。 #注意:在使用debug_connection前,需确保在执行configure时已经加入了--with-debug参数,否则不会生效。 worker_connections1024; } ##核心转储(coredump):在Linux系统中,当进程发生错误或收到信号而终止时,系统会将进程执行时的内存内容(核心映像)写入一个文件(core文件),以作为调试只用,这就是所谓的核心转储(coredump). http{ ##嵌入其他配置文件语法:include/path/file #参数既可以是绝对路径也可以是相对路径(相对于Nginx的配置目录,即nginx.conf所在的目录) includemime.types; default_typeapplication/octet-stream; #log_formatmain'$remote_addr-$remote_user[$time_local]"$request"' #'$status$body_bytes_sent"$http_referer"' #'"$http_user_agent""$http_x_forwarded_for"'; #access_loglogs/access.logmain; sendfileon; #tcp_nopushon; #keepalive_timeout0; keepalive_timeout65; #gzipon; server{ ##listen监听的端口 #语法:listenaddress:port[default(deprecatedin0.8.21)|default_server|[backlog=num|rcvbuf=size|sndbuf=size|accept_filter=filter|deferred|bind|ssl]] #default_server:如果没有设置这个参数,那么将会以在nginx.conf中找到的第一个server块作为默认server块 listen8080; #主机名称:其后可以跟多个主机名称,开始处理一个HTTP请求时,nginx会取出header头中的Host,与每个server中的server_name进行匹配,以此决定到底由那一个server来处理这个请求。有可能一个Host与多个server块中的server_name都匹配,这时会根据匹配优先级来选择实际处理的server块。server_name与Host的匹配优先级见文末。 server_namelocalhost; #charsetkoi8-r; #access_loglogs/host.access.logmain; #location/{ #roothtml; #indexindex.htmlindex.htm; #} ##location语法:location[=|~|~*|^~]/uri/{...} #location的使用实例见文末。 #注意:location时有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。 location/{ proxy_passhttp://192.168.1.60; } #error_page404/404.html; #redirectservererrorpagestothestaticpage/50x.html # error_page500502503504/50x.html; location=/50x.html{ roothtml; } #proxythePHPscriptstoApachelisteningon127.0.0.1:80 # #location~\.php${ #proxy_passhttp://127.0.0.1; #} #passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000 # #location~\.php${ #roothtml; #fastcgi_pass127.0.0.1:9000; #fastcgi_indexindex.php; #fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name; #includefastcgi_params; #} #denyaccessto.htaccessfiles,ifApache'sdocumentroot #concurswithnginx'sone # #location~/\.ht{ #denyall; #} } #anothervirtualhostusingmixofIP-,name-,andport-basedconfiguration # #server{ #listen8000; #listensomename:8080; #server_namesomenamealiasanother.alias; #location/{ #roothtml; #indexindex.htmlindex.htm; #} #} #HTTPSserver # #server{ #listen443ssl; #server_namelocalhost; #ssl_certificatecert.pem; #ssl_certificate_keycert.key; #ssl_session_cacheshared:SSL:1m; #ssl_session_timeout5m; #ssl_ciphersHIGH:!aNULL:!MD5; #ssl_prefer_server_cipherson; #location/{ #roothtml; #indexindex.htmlindex.htm; #} #} }

关于nginx.conf中根目录设置的这篇文章到此为止,关于nginx.conf根目录的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/774307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存