nginx-1.12.1 伺服器的配置檔案
阿新 • • 發佈:2019-02-17
nginx.conf
#使用的使用者和組 #user nobody; #指定工作衍生程序數(一般等於CPU的總核數或總核數的兩倍) worker_processes 4; #指定錯誤日誌存放的路徑,錯誤日誌的記錄級別可為debug,info,notice,warn,error,crit #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #指定pid檔案存放的路徑 #pid logs/nginx.pid; #指定檔案描述符的數量 #worker_rlimit_nofile 51200; events { #使用的I/O模型,Linux系統推薦使用epoll模型,FreeBSD推薦使用kqueue模型 #在我的Mac OSX 11系統中報錯 invalid event type "kueue" #use kueue; #允許連線數 worker_connections 1024; } http { #MIME檔案型別 include mime.types; default_type application/octet-stream; #設定使用的字符集,如果一個網站有多種字符集,請不要隨便設定,應讓程式設計師在HTML程式碼中通過meta標籤進行設定 #charset gb2312; #自定義一個日誌格式main(也可以寫在server各自的區間) #log_format name format [format ...] #log_format 格式名稱(nginx提供了一個預設的combined日誌格式,name名稱不能重複) 格式規則 #由於nginx是反向代理伺服器,$remote_addr拿到的是代理伺服器的IP #$http_x_forwarded_for才是使用者的真實IP #$remote_user記錄客戶端使用者名稱稱 #$time_local記錄訪問時間以及時區 #$request記錄訪問的URL以及協議 #$status記錄請求的狀態,例如302,404等 #$body_bytes_sent記錄傳送給客戶端的檔案大小 #$http_referer記錄訪問來源 #$http_user_agent記錄客戶端瀏覽器相關的資訊 # #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 path [format [buffer=size | off]] #access_log 路徑 [格式 [快取區大小|關閉日誌]] #關閉日誌 access_log off; #使用預設的combined格式的日誌access_log access.log #或access_log access.log combined; #自定義格式,並設定緩衝大小(到達32k的時候才會從記憶體中寫入到磁碟檔案) #access_log access.log main buffer=32k; #路徑中支援變數:如果是$server_name/access.log,server_name指令設定的是 #localhost,則路徑為localhost/access.log #路徑中含有變數,將導致三個問題 #(1)user指令中定義的使用者組要對目錄檔案有建立許可權 #(2)buffer失效,不再使用緩衝 #(3)每寫入一條記錄,都要開啟日誌檔案,然後關閉,開關,關閉......效率低下 #為提高包含變數的日誌檔案路徑的存取效能,需要使用open_log_file_cache指令 #預設情況下open_log_file_cache=off; #open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time] | off #停留在記憶體中的最大檔案描述符數量 #檔案描述符過期時間,如果在過期時間內未使用,則從緩衝中移除,預設10s #最少使用次數,如果在過期時間內,超過最少使用的次數,就續期,預設次數1 #多久檢查一次日誌檔案,預設60秒 #關閉緩衝 #示例:open_log_file_cache max=1000 20s min_uses=3 valid=2m #access_log logs/access.log main; #server_names_hash_bucket_size 128; #client_header_buffer_size 32k; #large_client_header_buffers 4 32k; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #fastcgi_connect_timeout 300; #fastcgi_send_timeout 300; #fastcgi_read_timeout 300; #fastcgi_buffer_size 61k; #fastcgi_buffers 4 64k; #fastcgi_busy_buffers_size 128k; #fastcgi_temp_file_write_size 128k; #開啟gzip壓縮 #gzip on; #gzip_min_length 1k; #gzip_buffers 4 16k; #gzip_http_version 1.1; #gzip_comp_level 2; #gzip_types text/plain application/x-javascript text/css application/xml; #gzip_vary on; #limit_zone crawler $binary_remote_addr 10m; #一個server可以理解成一個網站,一臺伺服器可以執行多個站點 #第一個站點 server { #nginx虛擬主機支援多種配置,基於埠、基於域名(最常用)、基於IP #如果基於埠的配置無法匹配或者匹配到了多個server,則搜尋基於域名的配置 #搜尋順序,按照寫法的先後順序,依此類推 #基於埠和基於IP的也可以配合使用 #例如80;127.0.0.1;127.0.0.1:80;127.0.0.1:81;127.0.0.2.80 #別跟我說一個網絡卡只可以擁有一個IP哦,提示“ifconfig”命令 #基於埠,其實預設情況下,也是基於127.0.0.1:80; listen 80; #基於域名,域名的書寫支援萬用字元,如*.firstdomain.com; #server_name www.firstdomain.com firstdomain.com; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #目錄瀏覽,開啟nginx目錄瀏覽功能 #檔案大小從KB開始顯示 #顯示檔案修改時間為伺服器本地時間 autoindex on; autoindex_exact_size off; autoindex_localtime on; #網頁檔案存放的根目錄 root html; #目錄內的預設開啟檔案,如果沒有匹配到index.html,則搜尋index.htm,依次類推 index index.html index.htm; } #error_page 404 /404.html; #將伺服器錯誤頁面重定向到靜態頁面/50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } #程式碼PHP指令碼到Apache在127.0.0.1:80上監聽 #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} #將PHP指令碼傳遞給FastCGI伺服器,偵聽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; #} location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #expires指令設定瀏覽器快取過期時間 #可以在http、server、location三個作用域中設定 #快取圖片或視訊30天 expires 30d; } location ~ .*\.(js|css)?$ { #快取js/css 1小時 expires 1h; } #拒絕訪問.htaccess檔案,如果Apache的文件根目錄與nginx檔案一致 #location ~ /\.ht { # deny all; #} } #另一個虛擬主機使用基於IP,名稱和埠的配置 #第二個站點,用於檢視nginx反向代理伺服器的執行狀態 #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} #HTTPS伺服器 #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; # } #} }