Nginx 配置(二)

1. Nginx 負(fù)載均衡

1.1 概述

  • Nginx 作為代理服務(wù)器角色, 有正向代理和反向代理 兩種.
  • 正向代理
    • 一般用于代理局域網(wǎng)絡(luò) 內(nèi)的服務(wù)器訪問外網(wǎng)的站點(diǎn), 代理的對象是客戶端, 目的是訪[圖片上傳中...(001.png-8d30e2-1544731366941-0)]
      問外網(wǎng)資源.
  • 反向代理
    • 反向代理一般是為 讓對互聯(lián)網(wǎng)上對自己的訪問, 代理到內(nèi)網(wǎng)資源, 由內(nèi)網(wǎng)資源提供服務(wù).
    • 常用與 負(fù)載均衡, 靜態(tài)資源緩存服務(wù)器

1.2 nginx 反向代理指令

  • 語法: proxy_pass

  • 作用:

    • 用于代理服務(wù)器協(xié)議和地址以及映射位置可以選URI, 作為協(xié)議, 可以指定 http 或 https 作為地址指定為域名 或者IP 地址, 可選端口
    • 可以指定URI, 如果指定了URI, 那么請求傳遞到服務(wù)器時(shí)會(huì)將請求URI
  • 示例:

upstream host1cc {
    server 192.168.10.11;
    server 192.168.10.12;
}
server {
    listen 80; 
    server_name     host1.cc;
    location ~ .*$ {
        proxy_pass  http://host1cc;
        proxy_set_header Host   $host;
        proxy_set_header X-Forwarded-For    $remote_addr;
        proxy_set_header X-Real-IP          $remote_addr;
    }   
}  
  • 測試
001.png
002.png

2. nginx 配合 php-fpm

  1. cgi 概念
  • CGI (Common Gateway Interface)

    • 通用網(wǎng)關(guān)接口 是HTTP Server和一個(gè)獨(dú)立應(yīng)用程序進(jìn)程之間 通信的協(xié)議, Web 服務(wù)器能夠?qū)⒂脩籼峤坏牡男畔⑼ㄟ^ CGI 交給程序處理, 由應(yīng)用程序處理后, 返回給web程序, 再由web 返回給客戶端.
    • 一般web 服務(wù)器只提供簡單的靜態(tài)文件處理(如html, jpg, text), 如果有動(dòng)態(tài)請求(如 php, python.. ) 會(huì)fork 出來一個(gè)新的CGI 程序, 動(dòng)態(tài)腳本請求交給CGI 處理, 不過啟動(dòng)CGI 程序 比較消耗性能, 需要 讀取配置文件, 加載擴(kuò)展等等, 當(dāng)本次請求處理結(jié)束后, 該CGI 程序會(huì)被銷毀.
  • FastCGI

    • 快速的 CGI, 由于CGI 每次處理請求都會(huì)創(chuàng)建和銷毀 比較消耗性能, FastCGI 就可以解決該問題,
    • FastCGI 會(huì)有一個(gè)常駐的程序, 用于一次讀取配置文件 加載CGI 程序需要的東西, 每當(dāng)有新請求時(shí)啟動(dòng)CGI 就不會(huì)消耗過多性能, 配置也不會(huì)反復(fù)加載, 并且可以在請求處理結(jié)束后, 保留進(jìn)程作為下次使用.
  • php-fpm

    • FastCGI process Manager 就是php的 fastCGI 管理器的簡稱.
    • 對于php 的FastCGI 進(jìn)程管理器.
    • 當(dāng)fastcgi 配置文件有變動(dòng)時(shí), 可以平滑重啟, 不影響已啟動(dòng)的 CGI, 而是在啟動(dòng)新的CGI 時(shí), 使用新的配置, 舊的CGI 運(yùn)行結(jié)束后會(huì)被關(guān)閉.
  1. 啟動(dòng)php-fpm
[root@node10009 php7]# /opt/app/php7/sbin/php-fpm -t
[14-Dec-2018 03:45:38] NOTICE: configuration file /opt/app/php7/etc/php-fpm.conf test is successful
[root@node10009 php7]# /opt/app/php7/sbin/php-fpm 
[root@node10009 php7]# ss -tan | grep 9000
LISTEN     0      128    127.0.0.1:9000                     *:*                  
[root@node10009 php7]# 
  1. nginx 配置 php-fpm
server {
    listen 82; 
    server_name     host2.cc;
    root            /opt/case/wwwroot/host2;
    index           index.html;
    charset         utf8;
    access_log      logs/host2.access.log;
    location ~ .*\.php$ {
        root            /opt/case/wwwroot/host2;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME     /opt/case/wwwroot/host2/$fastcgi_script_name;
        include         fastcgi_params;
    }   
}
  • 測試
003.png

END

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容