<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • nginx配置php環境(nginx如何配置文件)


    在前面已經演示了nginx的安裝以及常用命令,這一章節重點講解nginx的配置文件。

    1. nginx配置文件路徑:

    不同安裝方式,nginx的文件存放路徑也有所不同。

    源碼編譯安裝方式:在安裝目錄下的conf目錄下,比如我的安裝目錄是/usr/local/nginx,那么他的配置文件就在/usr/local/nginx/conf目錄下。

    yum安裝方式:在/etc/nginx/目錄(主配置文件)與/etc/nginx/conf.d目錄下。

    2. nginx配置文件的結構:

    通常源碼安裝的nginx的配置文件,會是下面這種結構,yum安裝的有細微差異(大致是一樣的,就是server是通過include引用的獨立配置文件)。

    ...
    events {
            ...
    }
    
    http {
        ...
        server {
            ....
            location {
                root html;
                ...
            }
        }
    }

    nginx的配置指令可以分為兩大類:指令塊單個指令。

    指令塊就是像events { },http { },server { }等,單獨指令就是像root html;這樣的。

    nginx規定指令塊可以嵌套,如http塊中可以嵌套server指令,server塊中可以嵌套location指令,指令可以同時出現在不同的指令塊,如root指令可以同時出現在http、server和location指令塊,需要注意的是在location中定義的指令會覆蓋server,http的指令。

    3. 代碼解析:

    3.1 全局配置:

    user  nobody;
    worker_processes  1;
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    #pid        logs/nginx.pid;
    
    events {
        use epoll;
        worker_connections  1024;
    }
    user  :指定nginx的工作進程的用戶及用戶組,默認是nobody用戶。
    
    worker_processes   :指定工作進程的個數,默認是1個。具體可以根據服務器cpu數量進行設置,
                        比如cpu有4個,可以設置為4。如果不知道cpu的數量,可以設置為auto。
                        nginx會自動判斷服務器的cpu個數,并設置相應的進程數。
                        
    error_log   :設置nginx的錯誤日志路徑,并設置相應的輸出級別。
                 如果編譯時沒有指定編譯調試模塊,那么 info就是最詳細的輸出模式了。
                 如果有編譯debug模塊,那么debug時最為詳細的輸出模式。這里設置為默認就好了。
                 
    pid     :指定nginx進程pid的文件路徑。
    
    events  :這個指令塊用來設置工作進程的工作模式以及每個進程的連接上限。
    use :用來指定nginx的工作模式,通常選擇epoll,除了epoll,還有select,poll。
    worker_connections      :定義每個工作進程的最大連接數,默認是1024。
                             客戶端最大連接數,就要考慮有幾個工作進程了,兩者相乘就是的。
                             當nginx作反向代理時,需要除以2.
                        
                            ps:進程的最大連接數受Linux系統進程的最大打開文件數限制。
                            比如ulimit -n 默認時1024,如果不改變這個值,
                            即使修改工作進程為2048,也無法處理這么多連接。
                            http指令塊

    3.2 http指令塊:

    http {
        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;
        client_max_body_size 20m;
        client_header_buffer_size 32K;
        large_client_header_buffers 4 32k;
        Sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        #keepalive_timeout  0;
        keepalive_timeout  65;
        #gzip  on;
        server {
            ...
            location {
                root html;
                ...
            }
        }
    
    }
    include     :主要是可以引用指定的配置文件。
    default_type        :設定默認類型為二進制流,也就是當文件類型未定義時使用這種方式,
                        例如在沒有配置PHP環境時,Nginx是不予解析的,
                        此時,用瀏覽器訪問PHP文件就會出現下載窗口。
    log_format      :定義日志文件格式,并默認取名為main,可以自定義該名字。
                     也可以通過添加,刪除變量來自定義日志文件的格式。
                     
    access_log      :定義訪問日志的存放路徑,并且通過引用log_format所定義的main名稱設置其輸出格式。
    sendfile    :用于開啟高效文件傳輸模式。將tcp_nopush和tcp_nodelay兩個指令設置為on用于防止網絡阻塞;
    keepalive_timeout       :設置客戶端連接保持活動的超時時間。在超過這個時間之后,服務器會關閉該連接。
    gzip  on        :開啟壓縮功能,減少文件傳輸大小,節省帶寬。
    client_max_body_size        :用來設置允許客戶端請求的最大的單個文件字節數
    client_header_buffer_size       :用于指定來自客戶端請求頭的header_buffer大小。
                                     對于大多數請求,1K的緩沖區大小已經足夠,
                                     如果自定義了消息頭或有更大的Cookie,可以增加緩沖區大小。這里設置為32K
    large_client_header_buffers     :用來指定客戶端請求中較大的消息頭的緩存最大數量和大小,
                                    “4”為個數,“128K”為大小,最大緩存量為4個128K
    client_header_timeout       :設置客戶端請求頭讀取超時時間。如果超過這個時間,
                                 客戶端還沒有發送任何數據,Nginx將返回“Request time out(408)”錯誤
    client_body_timeout     :設置客戶端請求主體讀取超時時間。
                             如果超過這個時間,客戶端還沒有發送任何數據,Nginx將返回“Request time out(408)”錯誤,默認值是60
    send_timeout        :指定響應客戶端的超時時間。這個超時僅限于兩個連接活動之間的時間,
                        如果超過這個時間,客戶端沒有任何活動,Nginx將會關閉連接。

    3.3 server指令塊:

    server {
            listen       80;
            server_name  localhost;
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
             index  index.html index.htm;
            location /
             {
                root   html;
                ...
            }
            #error_page  404              /404.html;
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
            #location ~ \.php$ {
                    ...
            #}
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
    server      :用來定義虛擬主機。
    listen      :設置監聽端口,默認為80端口
    server_name     :域名,多個域名通過逗號隔開
    Charset     :設置網頁的默認編碼格式
    access_log      :指定該虛擬主機的獨立訪問日志,會覆蓋前面的全局配置。
    index        :設置默認的索引文件
    location       :定義請求匹配規則。
    error_page      :定義訪問錯誤返回的頁面,凡是狀態碼是500 502 503 504 都會返回這個頁面。

    3.4 location指令塊:

    #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;
            #}
    location ~ \.php$     :凡是以php結尾文件,都會匹配到這條規則。
    root        :php文件存放的目錄
    fastcgi_pass        :指定php-fpm進程管理的ip端口或者unix套接字
    fastcgi_index   :指定php腳本目錄下的索引文件
    fastcgi_param       :指定傳遞給FastCGI服務器的參數
    location ~ /\.ht        :凡是請求類似.ht資源,都拒絕。

    這是比較基本的nginx配置,更加詳細的配置需要結合企業的生產需求,遇到了在加以說明。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费