Nginx概念及基礎安裝--詳細講解

1.主要內容:  

 Nginx的基礎
           特性
           配置部署
           優化(瞭解)javascript

2.Nginx 是什麼? 

   Nginx是一個開源的,支持高性能,高併發的www服務和代理服務軟件---web服務軟件。
    它是由俄羅斯人Igor Sysoev 開發的,
    優勢:php

        性能:佔用的系統資源更少,3萬併發開啓10個線程小號內存200MB
            支持更多的併發鏈接,幾萬併發小事情
            達到更高的訪問效率
            支持異步網絡I/O事件模型epoll(linux 2.6+)
        功能:優秀的web服務軟件,支持反向代理負載均衡及緩存服務
                                 代理軟件有:lvs, Haproxy等軟件,爲何選擇呢?
                                             nginx部署更簡單,方便啊
                                 緩存:他又相似緩存服務軟件(不多用)
                                         利用自身的proxy_cache 模塊實現類Squid等專業緩存功能
        安裝配置:更方便,簡單,靈活
                支持的操做系統:
                    UNIX,BSD,Mac OS X,  Solaris,linux,   Microsoft等操做系統
                經常使用的組合環境:LNMP 或LEMP(E 取自nginx的engine x)

     2015年web服務軟件排名:
    1.apache  32.40%
    2.Nginx   14.29%
    3.microsoft  [laɪt] [spiːd] 31.65% iis
    4.google servers 2.07%
    5.tomcat 0.4%html

3.Nginx的基本特性  

    a)可針對靜態資源高速高併發訪問及緩存
    b)可以使用反向代理加速,而且可進行數據緩存。
    c)據有簡單負載均衡、節點監控檢測和容錯功能
    d)支持FastCGI服務的緩存加速
        CGI全稱是「公共網關接口」(Common Gateway Interface),
        HTTP服務器與你的或其它機器上的程序進行「交談」的一種工具,
        其程序通常運行在網絡服務器上。
        CGI能夠用任何一種語言編寫,只要這種語言具備標準輸入、輸出和環境變量。
        如php,perl,tcl等。
        相對於CGI來講FastCGI有兩點是和其不一樣的。
        第一點是FastCGI的進程是永久性的,也就是說用於處理請求的進程隨着請求的結束並不會退出,而是繼續運行等待有新的請求來處理。
        這樣就解決了CGI因爲頻繁的建立和關閉進程所帶來的性能問題;
        第二點是FastCGI和web服務器之間的通訊方式是和CGI不一樣的。
        而且通訊時全雙工的模式
    f)支持FastCGI, Uwsgi, SCGI, Memcached servers的加速和緩存
    g)具備模塊化的架構

4.nginx所具備其餘的www服務特性:java

    a)支持基於名字,端口及ip的多虛擬主機站點:基於端口, ip, 域名

    c)可進行簡單,方便,靈活的配置和管理
    d)支持修改nginx配置,而且在代碼上線時,可平滑重啓
        平滑重啓:    
            nginx 運行新的工做進程並從容關閉舊的工做進程,通知工做進程關閉監聽套接字,
            可是繼續爲當前鏈接的客戶提供服務
            全部的客戶端的服務完成後,舊的工做進程被關閉
    e)可自定義訪問日誌格式,臨時緩衝寫日誌操做,快速日誌輪詢及經過rsyslog處理日誌
    f)可利用信號控制Nginx進程 kill -l
    g)支持rewrite模塊,支持URI重寫及正則表達式匹配
    h)支持FLV流和MP4流技術產品應用
    I)支持HTTP響應速率限制
    J)支持同一ip地址的併發鏈接或請求數限制
    K)支持郵件服務代理

編譯安裝Nginx環境:

1.準備工做:linux

    1.查看當前系統版本:cat /etc/redhat-release  --centos6.7
    yum -y install lrzsz
    yum -y install open gcc
    uname -a

    2.安裝Nginx所需的pcre庫及一些包    --用途(爲了使Nginx具備URI重寫功能rewrite)   nginx

        一般採用yum的方式:
        配置yum源(採用網絡源)

        yum -y install openssl openssl-devel gcc gcc-c++
        yum -y install pcre pcre-devel  


        查看版本:rpm -qa pcre

    3.選擇版本:c++

        穩定版,開發版,歷史穩定版
        首先穩定版(最新版晚6-10個月爲佳)

    4.爲神馬安裝openssl-devel,由於HTTPS服務須要這個模塊
       什麼是HTTPS呢?web

               a)http叫超文本傳輸協議,使用TCP端口80,默認狀況下數據是明文傳送的,
               數據能夠經過抓包工具捕獲到,所以在internet上,
               有些比較重要的站點的http服務器須要使用PKI(公鑰基礎結構)技術來對數據加密!
               這也就是https了;

            b)https叫安全的超文本傳輸協議,使用TCP端口443,
            他的數據會用PKI中的公鑰進行加密,
            這樣抓包工具捕獲到的數據包也沒有辦法看包中的內容,安全性大大提升,
            要解密數據的話就要用到PKI中的私鑰。
            因此一些安全性比較高的網站如:網上銀行,電子商務網站都須要用https訪問! 
View Code

    5.mkdir /app正則表達式

      cd /app  --用於存在各類軟件

      wget -q http://nginx.org/download/nginx-1.6.3.tar.gz  --下載軟件包

      ls --查看當前目錄下的文件,查看nginx是否下載完成

      useradd nginx -s /sbin/nologin -M  建立nginx用戶並禁止此用戶登陸系統  -M 不創建使用者目錄 -s使用者登入後使用的shell名稱,實際這裏是不容許登錄系統
      tail -1 /etc/passwd  查看用戶是否存在
      
      tar xf nginx-1.6.3.tar.gz  -解壓

      cd nginx-1.6.3   --進入解壓目錄

      ./configure   配置
           --user=nginx   進程用戶權限
           --group=nginx  進程用戶組權限
           --prefix=/usr/local/nginx1.4.5  設置安裝路徑
           --with-http_stub_status_module  激活狀態信息
           --with-http_ssl_module 激活ssl功能

      make  編譯

      make install 安裝
安裝命令

    6.此時不算安裝完,須要啓動前檢查配置文件語法shell

        /usr/local/nginx1.6.3/sbin/nginx -t
        在啓動服務錢檢測語法很是重要,能夠防止因配置錯誤致使網站重啓或者從新加載配置
        等對用戶的影響

    7.啓動Nginx服務

        /usr/local/nginx1.6.3/sbin/nginx

    8.查看服務是否啓動成功,方法:查看端口

        lsof -i :80
        netstat -lnt | grep 80

    9.訪問127.0.0.1  | curl 127.0.0.1

    10.總結:安裝容易出現的錯誤:

        1.nginx: [emerg] getpwnam("nginx") failed
        2.訪問不了頁面:
            1.關閉selinux setenforce 0 --臨時關閉selinux的方法getenforce(查看)
            2.關閉防火牆 /etc/init.d/iptables stop  --暫時關閉防火牆
            3.查看日誌:cat /usr/local/nginx1.6.3/logs/error.log
            4.ping ip 和查看端口

    11. server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;   ----------/home/www  ---更改網站根目錄
            index  index.html index.htm;
        }

    12.重啓服務

        方法1:殺進程重啓

        a)
        殺進程
        lsof -i :80
        kill -9 pid
        重啓
        /usr/local/nginx1.6.3/sbin/nginx
        b)
        ps -ef | grep nginx |awk '{print $2}'|  xargs kill -9
        /usr/local/nginx1.6.3/sbin/nginx

        方法2:配置文件重啓

        a)    檢查語法
/usr         /local/nginx/sbin/nginx -t
        /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

        -c制定配置文件的路徑,不加-c nginx會自動加載默認路徑的配置文件。

        b)
        /usr/local/nginx/sbin/nginx -t 檢查語法
        /usr/local/nginx/sbin/nginx -h  --查看幫助
        #-s signal : send signal to a master process: stop, quit, reopen, reload
        /usr/local/nginx/sbin/nginx -s  reload (reload若是語法錯誤不會成功,有時候不輸出錯誤)
        c)
        把nginx的啓動文件放在/etc/init.d裏面
        server nginx restart
        chkconfig --add nginx ---意義是開機自啓動
相關文章
相關標籤/搜索