主頁 > 知識庫 > 詳解nginx.conf 中 root 目錄設(shè)置問題

詳解nginx.conf 中 root 目錄設(shè)置問題

熱門標(biāo)簽:鸚鵡螺號航海地圖標(biāo)注時間 ai電話機器人營銷 400 電話 申請費用 比較穩(wěn)定的外呼系統(tǒng) 長沙回?fù)芡夂粝到y(tǒng) 山東電信外呼系統(tǒng)靠譜嗎 信貸電銷機器人系統(tǒng) 云南云電銷機器人招商 江蘇自動外呼系統(tǒng)一般多少錢

在配置 nginx.conf 總會遇到一些問題,下面列舉一些常見的問題并說明如何解決

1、相對路徑的問題

例如配置文件中 location 設(shè)置

location ~ .php${
 root html
 }

location 中root所指向的html是一個相對路徑,相對的是這個配置文件的路徑,假設(shè)此配置文件的位置是/etc/nginx/conf.d,那么這個html的絕對路徑就是/etc/nginx/conf.d/html。因此為避免出現(xiàn)不必要的麻煩,在配置root路徑的過程中最好用絕對路徑。

2、路徑的繼承問題

2.1 第一種情況

假如server 中聲明:

root /usr/share;

且 location 中聲明:

location /{
 root /usr/html/www
 }

此時會優(yōu)先使用 location 中的路徑

2.2 第二種情況

假如 location 中未對root路徑進(jìn)行聲明:

location /app {

}

則默認(rèn)使用 location 外的 root 聲明的路徑

3、首頁的設(shè)置問題

假如我們在聲明server 中聲明:

index index.html index.php

那么我們此時請求 / 就會在內(nèi)部重定向到 url/index.php 或者 url/index.html
然后再由相關(guān)的location 進(jìn)行匹配 之后再進(jìn)行解析

nginx.conf文件的詳解

官網(wǎng)對各個模塊參數(shù)配置的解釋說明網(wǎng)址: Nginx中文文檔

##代碼塊中的events、http、server、location、upstream等都是塊配置項##
##塊配置項可以嵌套。內(nèi)層塊直接繼承外層快,例如:server塊里的任意配置都是基于http塊里的已有配置的##

##Nginx worker進(jìn)程運行的用戶及用戶組 
#語法:user username[groupname]  默認(rèn):user nobody nobody
#user用于設(shè)置master進(jìn)程啟動后,fork出的worker進(jìn)程運行在那個用戶和用戶組下。當(dāng)按照"user username;"設(shè)置時,用戶組名與用戶名相同。
#若用戶在configure命令執(zhí)行時,使用了參數(shù)--user=usergroup 和 --group=groupname,此時nginx.conf將使用參數(shù)中指定的用戶和用戶組。
#user nobody;

##Nginx worker進(jìn)程個數(shù):其數(shù)量直接影響性能。
#每個worker進(jìn)程都是單線程的進(jìn)程,他們會調(diào)用各個模塊以實現(xiàn)多種多樣的功能。如果這些模塊不會出現(xiàn)阻塞式的調(diào)用,那么,有多少CPU內(nèi)核就應(yīng)該配置多少個進(jìn)程,反之,有可能出現(xiàn)阻塞式調(diào)用,那么,需要配置稍多一些的worker進(jìn)程。
worker_processes 1;

##ssl硬件加速。
#用戶可以用OpneSSL提供的命令來查看是否有ssl硬件加速設(shè)備:openssl engine -t
#ssl_engine device;

##守護(hù)進(jìn)程(daemon)。是脫離終端在后臺允許的進(jìn)程。它脫離終端是為了避免進(jìn)程執(zhí)行過程中的信息在任何終端上顯示。這樣一來,進(jìn)程也不會被任何終端所產(chǎn)生的信息所打斷。##
##關(guān)閉守護(hù)進(jìn)程的模式,之所以提供這種模式,是為了放便跟蹤調(diào)試nginx,畢竟用gdb調(diào)試進(jìn)程時最繁瑣的就是如何繼續(xù)跟進(jìn)fork出的子進(jìn)程了。##
##如果用off關(guān)閉了master_proccess方式,就不會fork出worker子進(jìn)程來處理請求,而是用master進(jìn)程自身來處理請求
#daemon off;  #查看是否以守護(hù)進(jìn)程的方式運行Nginx 默認(rèn)是on 
#master_process off; #是否以master/worker方式工作 默認(rèn)是on

##error日志的設(shè)置#
#語法: error_log /path/file level;
#默認(rèn): error_log / log/error.log error;
#當(dāng)path/file 的值為 /dev/null時,這樣就不會輸出任何日志了,這也是關(guān)閉error日志的唯一手段;
#leve的取值范圍是debug、info、notice、warn、error、crit、alert、emerg從左至右級別依次增大。
#當(dāng)level的級別為error時,error、crit、alert、emerg級別的日志就都會輸出。大于等于該級別會輸出,小于該級別的不會輸出。
#如果設(shè)定的日志級別是debug,則會輸出所有的日志,這一數(shù)據(jù)量會很大,需要預(yù)先確保/path/file所在的磁盤有足夠的磁盤空間。級別設(shè)定到debug,必須在configure時加入 --with-debug配置項。
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

##pid文件(master進(jìn)程ID的pid文件存放路徑)的路徑
#pid    logs/nginx.pid;


events {
 #僅對指定的客戶端輸出debug級別的日志: 語法:debug_connection[IP|CIDR]
 #這個設(shè)置項實際上屬于事件類配置,因此必須放在events{……}中才會生效。它的值可以是IP地址或者是CIRD地址。
 #debug_connection 10.224.66.14; #或是debug_connection 10.224.57.0/24
 #這樣,僅僅以上IP地址的請求才會輸出debug級別的日志,其他請求仍然沿用error_log中配置的日志級別。
 #注意:在使用debug_connection前,需確保在執(zhí)行configure時已經(jīng)加入了--with-debug參數(shù),否則不會生效。
 worker_connections 1024;
}

##核心轉(zhuǎn)儲(coredump):在Linux系統(tǒng)中,當(dāng)進(jìn)程發(fā)生錯誤或收到信號而終止時,系統(tǒng)會將進(jìn)程執(zhí)行時的內(nèi)存內(nèi)容(核心映像)寫入一個文件(core文件),以作為調(diào)試只用,這就是所謂的核心轉(zhuǎn)儲(coredump).

http {
##嵌入其他配置文件 語法:include /path/file
#參數(shù)既可以是絕對路徑也可以是相對路徑(相對于Nginx的配置目錄,即nginx.conf所在的目錄)
  include    mime.types;
  default_type application/octet-stream;

  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  #         '$status $body_bytes_sent "$http_referer" '
  #         '"$http_user_agent" "$http_x_forwarded_for"';

  #access_log logs/access.log main;

  sendfile    on;
  #tcp_nopush   on;

  #keepalive_timeout 0;
  keepalive_timeout 65;

  #gzip on;

  server {
##listen監(jiān)聽的端口
#語法:listen address:port [ default(deprecated in 0.8.21) | default_server | [ backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter | deferred | bind | ssl ] ]
#default_server: 如果沒有設(shè)置這個參數(shù),那么將會以在nginx.conf中找到的第一個server塊作為默認(rèn)server塊
 listen    8080;

#主機名稱:其后可以跟多個主機名稱,開始處理一個HTTP請求時,nginx會取出header頭中的Host,與每個server中的server_name進(jìn)行匹配,以此決定到底由那一個server來處理這個請求。有可能一個Host與多個server塊中的server_name都匹配,這時會根據(jù)匹配優(yōu)先級來選擇實際處理的server塊。server_name與Host的匹配優(yōu)先級見文末。
 server_name localhost;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    #location / {
    #  root  html;
    #  index index.html index.htm;
    #}

##location 語法: location [=|~|~*|^~] /uri/ { ... }
# location的使用實例見文末。
#注意:location時有順序的,當(dāng)一個請求有可能匹配多個location時,實際上這個請求會被第一個location處理。
 location / {
 proxy_pass http://192.168.1.60;
    }

    #error_page 404       /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #  proxy_pass  http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #  root      html;
    #  fastcgi_pass  127.0.0.1:9000;
    #  fastcgi_index index.php;
    #  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    #  include    fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #  deny all;
    #}
  }



  # another virtual host using mix of IP-, name-, and port-based configuration
  #
  #server {
  #  listen    8000;
  #  listen    somename:8080;
  #  server_name somename alias another.alias;

  #  location / {
  #    root  html;
  #    index index.html index.htm;
  #  }
  #}


  # HTTPS server
  #
  #server {
  #  listen    443 ssl;
  #  server_name localhost;

  #  ssl_certificate   cert.pem;
  #  ssl_certificate_key cert.key;

  #  ssl_session_cache  shared:SSL:1m;
  #  ssl_session_timeout 5m;

  #  ssl_ciphers HIGH:!aNULL:!MD5;
  #  ssl_prefer_server_ciphers on;

  #  location / {
  #    root  html;
  #    index index.html index.htm;
  #  }
  #}

}

到此這篇關(guān)于詳解nginx.conf 中 root 目錄設(shè)置問題的文章就介紹到這了,更多相關(guān)nginx.conf root 目錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:嘉興 拉薩 衡陽 澳門 齊齊哈爾 烏海 亳州 運城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解nginx.conf 中 root 目錄設(shè)置問題》,本文關(guān)鍵詞  詳解,nginx.conf,中,root,目錄,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解nginx.conf 中 root 目錄設(shè)置問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解nginx.conf 中 root 目錄設(shè)置問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章