亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Nginx的安裝部署以及使用

    【介紹】

    nginx是現(xiàn)在互聯(lián)上非常流行的高性能的 Web 和 反向代理 服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。

    現(xiàn)在很多互聯(lián)網(wǎng)應(yīng)用都使用nginx來(lái)作為負(fù)載均衡的使用,再高并發(fā)的情況下,使用Nginx來(lái)代替Apache是一種很不錯(cuò)的選擇。

    【安裝】

    ·安裝編譯工具以及庫(kù)文件·

    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

    ·安裝PCRE·

    PCRE的作用是為了Nginx支持Rewrite功能。

    1. 下載PCRE安裝包

    cd /usr/local/src/
    wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

    2. 解壓

    tar zxvf pcre-8.35.tar.gz

    3. 進(jìn)入安裝包目錄,編譯安裝

    cd pcre-8.35
    ./configure
    make && make install

    4. 查看版本

    pcre-config –version

    ·安裝nginx·

    1. 下載安裝包

    cd /usr/local/src/
    wget http://nginx.org/download/nginx-1.6.2.tar.gz

    2. 解壓

    tar zxvf nginx-1.6.2.tar.gz

    3. 進(jìn)入安裝包目錄,編譯安裝

    cd nginx-1.6.2
    ./configure –prefix=/usr/local/webserver/nginx –with-http_stub_status_module –with-http_ssl_module –with-pcre=/usr/local/src/pcre-8.35

    make && make install

    4. 查看nginx版本

    /usr/local/webserver/nginx/sbin/nginx -v

    5. 將nginx命令設(shè)置為全局

    cp /usr/local/webserver/nginx/sbin/nginx /usr/bin

    【配置】

    vim /usr/local/webserver/nginx/conf/nginx.conf

    worker_processes 2;  #設(shè)置值和CPU核心數(shù)一致

    server {

     listen 80; #監(jiān)聽(tīng)端口

    }

    【啟動(dòng)】

    修改完成配置之后,使用以下命令檢查一下配置:

    nginx -c /usr/local/webserver/nginx/conf/nginx.conf

    nginx  -t

    使用以下命令加載配置文件并重啟:

    nginx -s reload

    查看一下防火墻是否關(guān)閉,如果未關(guān)閉需要關(guān)閉,否則從瀏覽器訪問(wèn)80端口可能受阻。

    systemctl status firewalld
    systemctl stop firewalld

    在瀏覽器頁(yè)面上輸入IP加端口,可以顯示出以下頁(yè)面即為安裝成功(可能需要等待幾分鐘)  

    【配置優(yōu)化】

    以上的配置只是最最基本的配置,只能讓nginx簡(jiǎn)單得跑起來(lái),我們依然需要以下配置使nginx實(shí)現(xiàn)反向代理或者負(fù)載均衡。

    設(shè)置用戶

    #user nobody;

    工作進(jìn)程數(shù),一般設(shè)置為cpu核心數(shù)

    worker_processes 1;

    pid文件(保證進(jìn)程只有一個(gè))

    pid /run/nginx.pid;

    events {

    最大連接數(shù),一般設(shè)置為cpu*2048

     worker_connections 1024;

    }

    http {

    開(kāi)啟gzip壓縮(提高傳輸速率)(需要客戶端瀏覽器和nginx服務(wù)器同時(shí)支持)

    gzip on;

    壓縮最小文件大小

    gzip_min_lenth 1k;

    壓縮申請(qǐng)內(nèi)存(4個(gè)16k的數(shù)據(jù)流)

    gzip_buffers 4 16k;

    http協(xié)議版本號(hào)(不對(duì)應(yīng)的話是不支持壓縮的)

    gzip_http_version 1.1;

    如果客戶端瀏覽器不支持,則不進(jìn)行壓縮

       gzip_vary on;

    日志格式

    log_format main

    客戶端IP 客戶端用戶名 請(qǐng)求URL

    ‘$remote_addr – $remote_user [$time_local] “$request” ‘

    請(qǐng)求狀態(tài) 返回給客戶端的字節(jié)數(shù) 源網(wǎng)頁(yè)(百度->百度貼吧)

    ‘$status $body_bytes_sent “$http_referer” ‘

    客戶端瀏覽器信息 客戶端IP地址(和$remote_addr差不多)

    ‘”$http_user_agent” “$http_x_forwarded_for”‘;

    日志路徑 off代表不存儲(chǔ)日志,后面跟著日志的位置,main代表使用的日志格式

    access_log off

    access_log logs/access.log main;

    客戶端鏈接超時(shí)時(shí)間(有長(zhǎng)連接的時(shí)候,這個(gè)字段需要設(shè)置大一點(diǎn))

    keepalive_timeout 65;

    當(dāng)配置多個(gè)server節(jié)點(diǎn)時(shí),默認(rèn)server names的緩存區(qū)大小就不夠了,需要手動(dòng)設(shè)置大一點(diǎn)

    server_names_hash_bucket_size 512;

    server表示虛擬主機(jī)可以理解為一個(gè)站點(diǎn),可以配置多個(gè)server節(jié)點(diǎn)搭建多個(gè)站點(diǎn)

    每一個(gè)請(qǐng)求進(jìn)來(lái)由server_name確定使用哪個(gè)server

    server {

    站點(diǎn)監(jiān)聽(tīng)端口

    listen        8800;

    站點(diǎn)訪問(wèn)域名,可以通過(guò)此字段判斷使用哪個(gè)server

    server_name localhost;

    編碼格式,避免url參數(shù)亂碼

    charset utf-8;

    location用來(lái)匹配同一域名下多個(gè)URI的訪問(wèn)規(guī)則比如動(dòng)態(tài)資源如何跳轉(zhuǎn),靜態(tài)資源如何跳轉(zhuǎn)等location后面跟著的/代表匹配規(guī)則

    location / {

    站點(diǎn)根目錄,可以是相對(duì)路徑,也可以是絕對(duì)路徑

    root html;

    默認(rèn)主頁(yè)

    index index.html;

    轉(zhuǎn)發(fā)后端站點(diǎn)地址,一般用于做軟負(fù)載,輪詢后端服務(wù)器

    proxy_pass http://10.11.12.237:8080;

    拒絕請(qǐng)求,返回403,一般用于某些目錄禁止訪問(wèn)

    #deny all;

    允許請(qǐng)求

    #allow all;

    給請(qǐng)求頭中添加客戶請(qǐng)求主機(jī)名

    proxy_set_header Host $host;

    給請(qǐng)求頭中添加客戶端IP

    proxy_set_header X-Real-IP $remote_addr;

    將$remote_addr變量值添加在客戶端”X-Forwarded-For”請(qǐng)求頭的后面,并以逗號(hào)分隔。 

    如果客戶端請(qǐng)求未攜帶”X-Forwarded-For”請(qǐng)求頭,$proxy_add_x_forwarded_for變量值將與$remote_addr變量相同

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    給請(qǐng)求頭中添加客戶端的Cookie

    proxy_set_header Cookie $http_cookie;

    修改從被代理服務(wù)器傳來(lái)的應(yīng)答頭中的”Location”和”Refresh”字段。

    proxy_redirect [ default | off | redirect replacement ]

    如果使用”default”參數(shù),將根據(jù)location和proxy_pass參數(shù)的設(shè)置來(lái)決定。

    location /one/ {

      proxy_pass http://upstream:port/two/;

      proxy_redirect default;

    }

    location /one/ {

      proxy_pass http://upstream:port/two/;

      proxy_redirect http://upstream:port/two/ /one/;

    }

    參數(shù)off將在這個(gè)字段中禁止所有的proxy_redirect指令

    proxy_redirect off;

    被代理服務(wù)器返回Location字段為: http://localhost:8000/two/some/uri/

    將Location字段重寫(xiě)為 http://frontend/one/some/uri/。

    proxy_redirect http://localhost:8000/two/ http://frontend/one/;

    使用服務(wù)器的基本名稱和端口,即使它來(lái)自非80端口

    proxy_redirect http://localhost:8000/two/ /;

    瀏覽器對(duì) Cookie 有很多限制,如果 Cookie 的 Domain 部分與當(dāng)前頁(yè)面的 Domain 不匹配就無(wú)法寫(xiě)入。

    所以如果請(qǐng)求 A 域名,服務(wù)器 proxy_pass 到 B 域名,然后 B 服務(wù)器輸出 Domian=B 的 Cookie,

    前端的頁(yè)面依然停留在 A 域名上,于是瀏覽器就無(wú)法將 Cookie 寫(xiě)入。

    不僅是域名,瀏覽器對(duì) Path 也有限制。

    我們經(jīng)常會(huì) proxy_pass 到目標(biāo)服務(wù)器的某個(gè) Path 下,不把這個(gè) Path 暴露給瀏覽器。

    這時(shí)候如果目標(biāo)服務(wù)器的 Cookie 寫(xiě)死了 Path 也會(huì)出現(xiàn) Cookie 無(wú)法寫(xiě)入的問(wèn)題。

    設(shè)置”Set-Cookie”響應(yīng)頭中的domain屬性的替換文本,其值可以為一個(gè)字符串、正則表達(dá)式的模式或一個(gè)引用的變量

    轉(zhuǎn)發(fā)后端服務(wù)器如果需要Cookie則需要將cookie domain也進(jìn)行轉(zhuǎn)換,否則前端域名與后端域名不一致cookie就會(huì)無(wú)法存取

    配置規(guī)則。

    proxy_cookie_domain serverDomain(后端服務(wù)器域) nginxDomain(nginx服務(wù)器域)

    proxy_cookie_domain localhost .testcaigou800.com;

    取消當(dāng)前配置級(jí)別的所有proxy_cookie_domain指令

    proxy_cookie_domain off;

    與后端服務(wù)器建立連接的超時(shí)時(shí)間。一般不可能大于75秒;(只是一般情況,有些長(zhǎng)處理可能超時(shí)時(shí)間較長(zhǎng))

    proxy_connect_timeout 30;

    }

    后端服務(wù)器返回404時(shí)顯示的頁(yè)面

    error_page 404 /404.html;

    后端服務(wù)器返回500等錯(cuò)誤的時(shí)候顯示的頁(yè)面

    error_page  500 502 503 504 /50x.html;

      location = /50x.html {

      root html;

    }

    }

      當(dāng)需要對(duì)同一端口監(jiān)聽(tīng)多個(gè)域名時(shí),使用如下配置,端口相同域名不同,server_name也可以使用正則進(jìn)行配置

      但要注意server過(guò)多需要手動(dòng)擴(kuò)大server_names_hash_bucket_size緩存區(qū)大小

      server {

        listen 80;

        server_name bbb.abc.com;

        charset utf-8;

        location / {

          proxy_pass http://localhost:10001;

        }

      }

      server {

        listen 80;

        server_name aaa.abc.com;

        charset utf-8;

        location / {

          proxy_pass http://localhost:20002;

        }

      }

    }

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)