學習筆記-nginx

  • 內容簡介

    此篇文章簡單的介紹了什么是nginx以及nginx的簡單使用,nginx現在使用非常的廣泛,值得去了解學習。此處只是簡單的記錄一下,更詳細的操作步驟可以參考網上資料,僅供參考。希望對路過的你有幫助_


  • nginx介紹

    1.什么是nginx

    Nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。由俄羅斯的程序設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬并發鏈接,并且cpu、內存等資源消耗卻非常低,運行非常穩定。

    2.應用場景

    1、http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。
    2、虛擬主機。可以實現在一臺服務器虛擬出多個網站。例如個人網站使用的虛擬主機。
    3.反向代理,負載均衡。當網站的訪問量達到一定程度后,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集群可以使用nginx做反向代理。并且多臺服務器可以平均分擔負載,不會因為某臺服務器負載高宕機而某臺服務器閑置的情況


  • nginx安裝

    1.準備工作

    nginx是C語言開發,安裝包中只有源代碼,需要手動編譯,因此在linux上安裝時需要C語言的運行環境以及一些別的庫,所以需要一下的準備工作:
    * nginx安裝包下載 http://nginx.org/ * 安裝gcc的環境 yum install gcc-c++ # 安裝pcre庫 yum install -y pcre pcre-devel # 安裝zlib庫 yum install -y zlib zlib-devel # 安裝openssl庫 yum install -y openssl openssl-devel

    執行yum命令時可能會報無法找到鏡像的錯誤
    1.首先查看是否能正確連網,可以通過ping外網的方式測試 2.再能正常連網的情況下,配置DNS服務,vi /etc/resolv.conf 在最后添加 nameserver 8.8.8.8 nameserver 8.8.4.4 search localdomain 3.重啟網絡服務: service network restart 即可


    2.安裝步驟

    • 把nginx的源碼包上傳到linux系統,解壓縮

    • 進入nginx目錄,有configure可執行文件,運行命令:

    ./configure \
    --prefix=/usr/local/nginx \
    --pid-path=/var/run/nginx/nginx.pid \
    --lock-path=/var/lock/nginx.lock \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --with-http_gzip_static_module \
    --http-client-body-temp-path=/var/temp/nginx/client \
    --http-proxy-temp-path=/var/temp/nginx/proxy \
    --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
    --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
    --http-scgi-temp-path=/var/temp/nginx/scgi
    
    * 注釋
    prefix=/usr/local/nginx  -安裝目錄
    /var/temp/nginx/client   - 臨時文件目錄,需要手動創建
    mkdir /var/temp/nginx/client -p
    
    • 創建makeFile文件(如果有則無需創建) -> make(編譯) -> make install(安裝)

    • 安裝成功后,去對應目錄查看,此處在/usr/local/nginx ,進入sbin,執行 ./nginx ,如果提示XXX目錄不存在,則創建該目錄即可,此處是安裝時應用到的目錄未創建的原因

    • .執行./nginx,通過查看進程判斷是否正常啟動,需要同時具備兩個nginx進程才表示正常啟動


      nginx-ps
      nginx-ps
    • 直接通過IP訪問nginx,默認是80端口。需要注意是否關閉防火墻。如下圖,即表示nginx安裝并且啟動成功


      nginx-succ
      nginx-succ
    • 相關操作命令

    # 啟動
    ./nginx
    # 停止nginx
    sbin/nginx -s stop 或者 sbin/nginx -s quit
    # 刷新配置文件,平滑重啟
    sbin/nginx -s reload
    

    3.配置虛擬主機

    • 含義:一臺服務器啟動多個網站,就是把一臺物理服務器劃分成多個“虛擬”的服務器,每一個虛擬主機都可以有獨立的域名和獨立的目錄

    • 配置虛擬主機就是通過修改配置Nginx的配置文件:vi /usr/local/nginx/conf/nginx.conf 中的server節點,一個server節點對應一個虛擬主機

    • 通過端口區分

    server {
        listen       80;
        server_name  localhost;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            # 對應nginx安裝目錄下的HTML目錄
            root   html;
            index  index.html index.htm;
        }
    }
    server {
        listen       81;
        server_name  localhost;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            # 可以復制一個目錄,修改index.html中的內容,進行區分
            root   html-81;
            index  index.html index.htm;
        }
    }
    
    • 重啟 sbin/nginx -s reload ,訪問IP+端口,觀察效果

    • 通過域名區分虛擬主機

    • 什么是域名? littledragon.cn 就是域名哦,親;可以網上查找相關知識

    • 本地測試可以修改hosts文件。修改window的hosts文件:(C:\Windows\System32\drivers\etc)可以配置域名和ip的映射關系,如果hosts文件中配置了域名和ip的對應關系,不需要走dns服務器,可以進行直接映射

    192.168.XX.100 littledragon.cn
    192.168.XX.100 www.baidu.com
    
    • 通過域名區分
     server {
        listen       80;
        server_name  littledragon.cn;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            root   html-taobao;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  www.baidu.com;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            root   html-baidu;
            index  index.html index.htm;
        }
    }
    

    4.反向代理

    • 兩個域名指向同一臺nginx服務器,用戶訪問不同的域名顯示不同的網頁內容,詳細解釋可以網上參考其他資料

    • 此處模擬測試的域名采用:www.sian.com.cnwww.sohu.com,需要在host文件中配置本地映射

    • 安裝兩個tomcat,分別運行在8080和8081端口,啟動(可以將兩個顯示內容加以區分,使效果明顯)

    • 反向代理服務器的配置

    upstream tomcat1 {
    server 192.168.XX.100:8080;
    }
    server {
        listen       80;
        server_name  www.sina.com.cn;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            proxy_pass   http://tomcat1;
            index  index.html index.htm;
        }
    }
    upstream tomcat2 {
    server 192.168.XX.100:8081;
    }
    server {
        listen       80;
        server_name  www.sohu.com;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            proxy_pass   http://tomcat2;
            index  index.html index.htm;
        }
    }
    
    • 重啟nginx,依次通過瀏覽器訪問兩個域名,查看效果

    5.負載均衡

    • 如果一個服務由多條服務器提供,需要把負載分配到不同的服務器處理,需要負載均衡,可以根據服務器的實際情況調整服務器權重。權重越高分配的請求越多,權重越低,請求越少。默認是都是1
    upstream tomcat2 {
        server 192.168.25.148:8081;
        server 192.168.25.148:8082 weight=2;
    }
    

    6.高可用(簡介)

    1.keepalived + nginx
    2.主nginx 和 備nginx 都安裝keepalive,并且都是用一個VIP(虛擬IP)
    3.備nginx 會一直向主nginx發送心跳包檢測主機是否正常運行
    4.主機宕機后,備nginx綁定VIP,繼續運行
    5.主機回復后,取回VIP


  • 結語

簡答介紹了nginx相關的一些內容,如果需要更詳細的資料可以去網上或者官網查看,此處只是簡單作為記錄的作用,希望對路過的你有幫助_


本文作者: little-dragon
個人博客: http://littledragon.cn
版權聲明: 原創文章,有問題請評論中留言。非商業轉載請注明作者及出處。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Page 1:nginx 服務器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,574評論 1 41
  • 什么是nginx? Nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服...
    FTOLsXD閱讀 464評論 0 1
  • nginx在工作中已經有好幾個環境在使用了,每次都是重新去網上扒博客,各種編譯配置,今天自己也整理一份安裝文檔和n...
    AndyChin閱讀 2,327評論 0 4
  • 1.ngnix介紹 ngnix www服務軟件 俄羅斯人開發 開源 性能很高 本身是一款靜態WWW軟件 靜態小文件...
    逗比punk閱讀 2,131評論 1 6
  • 我之前經常是讀完一本書,一段時間之后,就不大記得里面的內容了。或者更慘的是,剛讀完合上書,就已經忘了個大概。 但我...
    在下于十八閱讀 2,041評論 6 26