Nginx 常見配置解析

結構上:

核心模塊:HTTP模塊、EVENT模塊、MAIL模塊。
基礎模塊:HTTP access模塊、HTTP FastCGI模塊、HTTP Proxy模塊、HTTP Rewrite模塊。
第三方模塊:HTTP Upstream Request Hash模塊。

功能上:

Handlers:處理請求,進行輸出內容和修改headers信息等。
Filters:主要對其他處理模塊輸出的內容進行修改操作。
Proxies:Nginx的HTTP Upstream之類的模塊,與后端服務如fastcgi等進行交互。

工作模式:

單工作進程
多工作進程

Nginx與Apache最大區別:

Nginx的模塊直接編譯進Nginx,屬于靜態編譯方式,啟動Nginx自動加載。
Apache將模塊編譯成一個so文件,需要在配置文件中指定是否加載。

靜態文件處理:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        root /web/wwwroot/;
        expires 30d;       -----指定靜態文件過期時間
    }

配置獲取nginx的運行狀態:

location /NginxStatus {
        stub_status    on;    ---啟用StubStatus的工作狀態統計功能
        access_log    logs/NginxStatus.log;    ---指定訪問日志文件
        auth_basic    "NginxStatus";    ---Nginx的一種認證機制
        auth_basic_user_file    ../htpasswd;    ---指定認證密碼文件
    }
# /usr/local/apache/bin/htpasswd -c /usr/local/nginx/conf/htpasswd webadmin

Nginx信息:
Active connection: 1      ----當前活躍的鏈接數
server accepts handled reqests       
 393411  393411  393799      ---總共處理了393411個連接,創建393411次握手,處理393799個請求
reading: 0  Writiong: 1 Waiting: 0

Nginx啟動、關閉重啟

QUIT:處理完當前請求后關閉進程。
HUP:重新加載配置沒平滑重啟Nginx。
USR1:Nginx日志切換,重親打開一個日志文件。
USR2:平滑升級執行。
WINCH:從容關閉工作進程。

nginx反向代理根問題測試:

訪問192.168.8.104:  192.168.8.103目錄test下有index.html測試用

location / {
        proxy_pass http://192.168.8.103/test;
    }
出現301

location / {
        proxy_pass http://192.168.8.103/test/;
    }   
正常訪問

訪問192.168.8.104/test/test.html:

location /test {
        proxy_pass http://192.168.8.103/app;
    }
訪問到/app/test.html

location /test/ {
        proxy_pass http://192.168.8.103/app;
    }
訪問到/apptest.html

location /test {
        proxy_pass http://192.168.8.103/app/;
    }
 訪問到/app//test.html

location /test/ {
        proxy_pass http://192.168.8.103/app/;
    }
訪問到/app/test.html

location /test {
        proxy_pass http://192.168.8.103;
    }
訪問到/test/test.html

location /test {
        proxy_pass http://192.168.8.103/;
    }
訪問到//test.html

location /test/ {
        proxy_pass http://192.168.8.103;
    }
訪問到/test/test.html

location /test/ {
        proxy_pass http://192.168.8.103/;
    }
訪問到/test.html

總結 如果location路徑是根,那么proxy_pass 路徑必須加根。
     如果proxy_pass 沒有路徑, location路徑會被完整的傳遞下來。
     如果proxy_pass有路徑,location路徑排除匹配所用的部分會完整的傳遞下來。

別名:

location /i {
    alias /var/www/html/imags/;    
}
url請求 /i/logo.gif 服務器會查找/var/www/html/imags/logo.gif
如果是root  會查找/var/www/thml/imags/i/logo.gif

location ~ ^/download/(.*)$ {
    alias /home/webdata/www/$1;
}
url請求 /download/ebook.tar.gz ,Nginx服務器會請求 /home/webdata/www/ebook.tar.gz 文件
如果是root 會查找/home/webdata/www/ebook.tar.gz/download/ebook.tar.gz

 

rewrite:

語法: rewrite regex flag
默認:none
使用字段:server 、 location 、 if
flag種類:
last:rewrite之后搜索相應的URI或location
break:終止匹配,不在匹配后面規則
redirect:返回302,游覽器顯式跳轉后的地址
permanent:返回301,游覽器顯式跳轉后的地址

重定向實現域名過度:
server {
    server_name  com;
    if ($host != ' {
        rewrite ^/(.*)$  permanent; 
    }   

}

緩存:

proxy_cache_path /backup/proxy_cache_dir
levels=1:2
keys_zone=cache_one:4096m
inactive=1d 
max_size=3g;
proxy_temp_path /backup/proxy_temp_dir;  需跟proxy_cache_path分在一個磁盤
location中配置
proxy_cache cache_one;
proxy_cache_valid 200 304 12h
proxy_cache_key $host$url$is_args$args;

清楚緩存:

location ~ /purge(/.*)
{
    allow 127.0.0.1;
    allow 192.168.88.0/24
    deny all;
    proxy_cache_purge cache_one $host$1$is_args$args
}
 的緩存可以通過訪問
 清除

原創文章,作者:心肝壞了,如若轉載,請注明出處:http://www.www58058.com/47953

(0)
心肝壞了心肝壞了
上一篇 2016-12-05
下一篇 2016-12-05

相關推薦

  • Linux基礎知識之網絡配置

    基本網絡配置:     將Linux主機接入到網絡,需要配置網路相關設置。         IP/NETMASK:本地通信         路由(網關):跨網絡…

    Linux干貨 2016-09-07
  • NTP時間服務器

        在集群環境和需要日志同步的多服務器應用中,為了能夠保證多臺服務器的之間的正常協作,就必須使它們的時間保持一致,在多臺服務器上手動調整時間是極其不科學的,這時就需要借助于NTP時間服務器來完成時間的同步。     一、NTP服務器的安裝    …

    Linux干貨 2015-06-25
  • linux基礎入門之一

    一、計算機的組成與功能 計算機由硬件和軟件組成 硬件: 按馮·洛伊曼體系劃分 1、CPU:包括運算器、控制器、寄存器、緩存,對數據控制和計算 2、存儲器:內部存儲器、外部存儲器,對數據提供存儲功能 3、輸入設備:具有下指令,提供數據輸入 4、輸出設備:輸出數據加工的結果 軟件: 1、低級語言:匯編語…

    Linux干貨 2016-09-19
  • 馬哥教育千萬級PV實戰大揭秘

    又到了激動人心的架構實戰項目實踐時間,馬哥教育面授班的學員都很期待這一刻的到來,因為經過此次洗禮,能讓自己成長更多! 上周二,馬哥教育張Sir帶領18期面授班的學員們做千萬PV級別的電商架構實戰項目!新增的多臺R710企業級服務器設備,輕松搭建大數據、云計算等高端實驗環境,讓實戰,更加真實!相信經過這場實戰的洗禮,小伙伴們架構技能會有更大提升! 【張Sir生…

    2016-06-30
  • 配置epl時,出現“time out”錯誤,解決辦法

    一:配置環境、網絡環境及出現的故障 1:配置環境 本機在配置epel倉庫時,配置文件所在路徑為/etc/yum/repos.d/centos7.repo.以下為配置文件的的詳細內容 [base]name=centos 7.3baseurl=file:///misc/cdgpgkey=file:///misc/cd/RPM-GPG-KEY-Centos-7 […

    2017-06-10
  • KVM基本功能

    前言:本來想寫出關于KVM的精品文章,然而學的時間不夠長,理解也不夠透徹。所以有關KVM的高級功能只能等下一次在寫。本次只涉及到KVM的基礎核心功能,平時經常會使用的功能.。 一、環境準備: 1、BIOS啟用Virtualication。 2、在linux系統上查看系統是否支持硬件虛擬化。Intel系列CPU支持虛擬化標識為vmx,AMD系列CPU標識為sv…

    Linux干貨 2015-10-27
欧美性久久久久