首頁 >後端開發 >php教程 >關於Nginx的基礎內容

關於Nginx的基礎內容

不言
不言原創
2018-05-07 10:57:351421瀏覽

這篇文章主要介紹了關於Nginx的基礎內容,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

Nginx-基礎篇

一、環境:

  • 系統硬體:CPU>=2Core,記憶體>=256M

  • ##作業系統:CentOS 7.2 x64


二、環境偵錯確認:

1、四個確認

  1. 確認系統網路

  • #ping www.baidu.com

  • #確認yum可用

    • yum list

  • 確認關閉iptables規則

    • #iptables -L(查看是否有iptables規則)

    • #iptables -F(關閉規則)

    • iptables -t nat -L(查看net表裡有沒有規則)

    • 如果net表中有規則可以執行:iptables -t nat -F

  • #確認停用selinux

    • ##getenforce (查看selinux是否開啟)
    • setenforce 0 (關閉selinux)
    2、兩項安裝

      #安裝gcc等:
      • yum -y install gcc gcc-c autoconf pcre pcre-devel make automake
      #安裝基本工具:
      • yum -y install wget httpd-tools vim
      3、一次初始化

      #cd /opt;mkdir app download logs work backup
    • ##app:程式碼目錄
      • download:網路上下載的原始碼套件
      • logs:自訂日誌
      • work:shell腳本
      • backup:備份
      三、什麼是Nginx:

    Nginx是一個開源且高效能、可靠的HTTP中間件、代理服務。

    四、Nginx優勢:

    IO多工epoll
    1. 輕量級
    2. 功能模組少
    • 程式碼模組少
    • CPU親和(affinity )
  • 把CPU核心和Nginx工作進程綁定,把每個worker進程固定在一個cpu上執行,減少切換cpu的cache miss,得到更好的效能。
    • sendfile
  • #把檔案的傳輸只透過kernel space傳送給用戶,不經過user space
    五、Nginx的快速安裝

    #進入官網http://nginx.org/
    1. 點擊download
    2. 點擊Linux packages for stable version
    3. 修改/etc/yum.repos.d/nginx.repo ,並加入官網指定內容
    4. 注意
    :baseurl需要修改OS和OSRELEASE為你對應的伺服器版本
    直接yum install nginx
    1. nginx -v 出現nginx的版本訊息說明安裝成功!
    2. 六、Nginx的目錄與設定語法

    #rpm -ql nginx:可以查詢nginx安裝的檔案
    • #目錄
    • /etc/logrotate.d/nginx:設定文件,Nginx日誌輪換,用於logrotate服務的日誌切割
      • /etc/nginx、/etc/nginx/nginx.conf、/etc/nginx/conf.d、/etc/nginx/conf.d/default.conf:目錄、設定文件, Nginx主設定檔
      • /etc/nginx/fastcgi_params、/etc/nginx/uwsgi_params、/etc/nginx/scgi_params:設定文件,cgi設定相關,fastfastcgi配置
      • #cgi配置
      • #cgi配置。

        ##/etc/nginx/koi-utf、/etc/nginx/koi-win、/etc/nginx/win-utf:設定文件,編碼轉換映射轉換檔案
      • /etc/nginx/mime.types:設定文件,設定http協定的Content-Type與副檔名對應關係
      • /usr/lib/systemd/system/ nginx-debug.service、/usr/lib/systemd/system/nginx.service、/etc/sysconfig/negix、/etc/sysconfig/negix-debug:設定文件,設定守護程式管理員的管理方式
      • /usr/lib64/nginx/modules、/etc/nginx/modules:目錄,Nginx模組目錄
      • /usr/sbin/nginx、/usr /sbin/nginx-debug:指令,Nginx服務的啟動管理的終端指令
      • /var/cache/nginx:目錄,Nginx的快取目錄
      • #/var/log/nginx:目錄,Nginx的日誌目錄
      • nginx -V:
    • 編譯參數
    • --with-http_stub_status_module
      • #--with-http_sub_module
      • #- -with-http_random_index_module
      • --with-ld-opt=parameters
      • --with-cc-opt=parameters
      • --user=nginx
      • ##
      • --group=nginx

      • --http-client-body-temp-path=/var/cache/nginx/client_temp

      • #--http-proxy-temp-path=/var/cache/nginx/proxy_temp

      • --http-fastcgi-temp-path=/var /cache/nginx/fastcgi_temp

      • --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp

      • #-- http-scgi-temp-path=/var/cache/nginx/scgi_temp

      • #--prefix=/etc/nginx

      • -- sbin-path=/usr/sbin/nginx

      • --modules-path=/usr/lib64/nginx/modules

      • #-- conf-path=/etc/nginx/nginx.conf

      • --error-log-path=/var/log/nginx/error.log

      • #--http-log-path=/var/log/nginx/access.log

      • #--pid-path=/var/run/nginx.pid

      • --lock-path=/var/run/nginx.lock

      • #安裝目的目錄或路徑

      • 執行對應模組時,nginx所保留的臨時性檔案

      • 設定nginx進程啟動的使用者和使用者群組

      • 設定額外的參數將會被加入到CFLAGS變數

      • 設定附加的參數,連結系統庫

      • 目錄中隨機選擇一個主頁

      • HTTP內容替換

      • Nginx的用戶端狀態

    • Nginx預設設定語法

      • worker_connections:每個進程允許最大連線數

      • use:工作進程數

      • user:設定nginx服務的系統使用使用者

      • worker_processes:工作進程數(最好跟cpu的數量一致)

      • error_log :nginx的錯誤日誌

      • pid:nginx服務啟動的pid

      • ##events:


    七、Nginx日誌類型

    1. 包含了:error.log和access.log

    2. 透過nginx.conf配置文件中log_format來定義要記錄的變數格式來記錄日誌

    3. 可以被記錄到日誌中的變數

    • Nginx內建

    • arg_PARAMETER:request請求的參數

    • http_HEADER:request請求的header

    • #sent_http_HEADER:服務端傳回的header

    • #HTTP請求變數

    • 內建變數

    • #自訂變數


    八、Nginx模組

    nginx -tc /etc/nginx/nginx.conf :查詢設定檔語法是否正確
    nginx -s reload -c /etc/nginx/conf:重啟
    1. http_stub_status_module(展示Nginx相關資訊)

    • 設定語法:stub_status

    • 預設:無

    • Context:server,location

  • random_index_module

    • 設定語法:random_index on|off

    • ##預設:random_index off
    • Context:location
    http_sub_module
    • ##http_sub_module
    • default:sub_filter_once on
    • on:只符合第一個,off:全域比對

    • default:sub_filter_last_modified off

    • #default:無
    • string:需要被替換的字串
    • replacement:替換的字串

    • sub_filter string replacement
    • sub_filter_last_modified on|off
    #sub_filter_once on|off
    1. 注意
    2. :上述的Context:http,server,location
    • # limit_conn_module(連線頻率限制)
    • 設定語法:limit_conn zone number
    • 預設:無
    • Context:http,server,location

    • #設定語法:limit_conn_zone key zone=name:size
  • #預設:無

    • Context:http

    • #limit_conn_zone
    • limit_conn
    • limit_req_module(請求頻率限制)
    • 設定語法:limit_req zone=name [brust=number] [ nodelay]
  • 預設:無
    • #Context:http,server,location

    • ##設定語法:limit_req_zone key zone=name:size rate=rate
    • 預設:無############Context:http### ###############limit_req_zone############limit_req##############http_access_module(基於IP的訪問控制)###############設定語法:deny address|CIDR(網段)|unix:|all;############預設:無# ###########Context:http,server,location,limit_except###
    • 設定語法:allow address|CIDR(網段)|unix:|all;

    • 預設:無

    • #Context:http,server,location,limit_except

    • #allow

    • ##deny

    限制:透過代理存取會失效

      ##可以使用http_x_forwarded_for
    • #結合geo模組
    • 透過http自訂變數傳遞
      http_auth_basic_module(基於使用者的信任登入)
      #設定語法:auth_basic_user_file filePath
    • #預設:無
    • #Context:http,server,location,limit_except
      #設定語法:auth_basic string | off;
    • #預設:無
    • Context:http,server,location,limit_except
    ##auth_basic
    • auth_basic_user_file
    #注意:file的格式是指定的,產生密碼可以使用httpd-tools
    指令
    htpasswd -c filePath username
    #

    以上是關於Nginx的基礎內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn