1. 程式人生 > >Nginx概念及基礎安裝--詳細講解

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

1.主要內容:  

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

2.Nginx 是什麼? 

   Nginx是一個開源的,支援高效能,高併發的www服務和代理服務軟體---web服務軟體。
    它是由俄羅斯人Igor Sysoev 開發的,
    優點:

        效能:佔用的系統資源更少,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%

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服務特性:

    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.準備工作:

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

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

        通常採用yum的方式:
        配置yum源(採用網路源)

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


        檢視版本:rpm -qa pcre

    3.選擇版本:

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

    4.為神馬安裝openssl-devel,因為HTTPS服務需要這個模組
       什麼是HTTPS呢?

               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.此時不算安裝完,需要啟動前檢查配置檔案語法

        /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 ---意義是開機自啟動

相關推薦

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

1.主要內容:    Nginx的基礎           特性           配置部署           優化(瞭解) 2.Nginx 是什麼?     Nginx是一個開源的,支援高效能,高併發的www服務和代理服務軟體---web服務軟體。    它是由俄羅斯人Igor Sysoev 開

Pycharmpython安裝詳細教程

nbsp exe www. center project 完成 查詢 win window 首先我們來安裝python 1、首先進入網站下載:點擊打開鏈接(或自己輸入網址https://www.python.org/downloads/),進入之後如下圖,選擇圖中紅色圈中區

docker學習(二)——docker的基本概念基礎使用

一張圖概括整篇文章內容: 來自:https://medium.com/@nagarwal/lifecycle-of-docker-container-d2da9f85959 lxc->libcontainer->runC OCI(Open Container I

蘋果mac電腦中brew的安裝使用解除安裝詳細教程

brew 又叫Homebrew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體, 只需要一個命令 brew 又叫Homebrew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體, 只需要一個命令, 非常方

mac中brew的安裝使用解除安裝詳細教程

brew 又叫Homebrew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體, 只需要一個命令 brew 又叫Homebrew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體, 只需要一個命令, 非常方便

vue概念基礎學習

前面囉嗦了一堆兒,補了點知識。 再來學Vue和webpack。 webpack是一款模組載入器兼打包工具,它能把各種資源,例如JS(含JSX)、coffee、樣式(含less/sass)、圖片等都作為模組來使用和處理。 對初學者來說,真的有些亂,讀完這些,概念差不多了,

Zookeeper分散式過程協同技術 - 概念基礎

Zookeeper分散式過程協同技術 - 概念及基礎 Zookeeper是什麼? Zookeeper是一種分散式過程協同技術,其所提供的客戶端API功能強大,其中包括: 保障強一致性。有序性和永續性。 實現通用的同步原語的能力。 在實際分散式系統中,併發往往導致不正確的行為。Zookeeper提供了一種簡單

Nginx編譯安裝編譯參數講解

支持 assembler 臨時文件 files sha cached erro mp4 工具 實驗環境說明:操作系統:Centos 7 64位Nginx版本:Nginx 1.12.2 編譯安裝前的準備:安裝Nginx編譯安裝需要依賴的一些包yum install gcc g

linux系統MySQL的安裝和hive叢集安裝詳細步驟講解

此安裝步驟是多年經驗總結,一定要嚴格按照步驟進行,一定要細心!!! MySQL的安裝是重中之重!!!出現錯誤很難修改!!! 另外安裝命令不要複製!!!自己手敲!!!不要複製!!!複製可能導致出錯!!! 空格,小數點要格外注意,都不能少 一、先刪除Linux自帶的MySQL 1、找到

Hadoop叢集配置安裝,詳細步驟講解

**涉及linux命令一定要注意大小寫和空格,linux系統對此敏感** **hadoop叢集的安裝一定要靜下心一步一步來** 1、關閉防火牆(防火牆最好關閉,不然以後linux操作會有很多麻煩) 1)輸入命令: vi etc/selinux/config 其中改為 SELINU

linux下安裝nginx+php+mysql環境詳細講解

linux環境:centos 7.0 64位 nginx:nginx-1.8.0.tar.gz php: php-7.1.1.tar.gz mysql: mysql-5.6.21.tar.gz libxml2:libxml2-2.9.1.tar.gz openss

nginx詳細講解之location,rewrite,反向代理負載均衡

一、location 的語法 locltion可以把不同方式的請求,定位到不同的處理方式上(個人感覺有點像java中的filter) 1.1location分類及用法 location大致分為三

圖解集合7:紅黑樹概念、紅黑樹的插入旋轉操作詳細解讀

集合 得到 2個 排序。 數據流 except boolean 修正 split 原文地址http://www.cnblogs.com/xrq730/p/6867924.html,轉載請註明出處,謝謝! 初識TreeMap 之前的文章講解了兩種Map,分別是HashMa

Tornado 基礎安裝啟動

all fix 3.x div **kwargs pos cat highlight dmi Tornado 基礎安裝及啟動 2017年03月24日 hairui Tornado 115 0 Tornado的安裝 Python 2.7.x 安裝學習

NAT穿透的詳細講解分析

設置 網通 我會 什麽 報告 pub 後端 火墻 聯系 原文地址:http://bbs.pediy.com/thread-131961.htm 一、什麽是NAT?為什麽要使用NAT?NAT是將私有地址轉換為合法IP地址的技術,通俗的講就是將內網與內網通信時怎麽將內網私有IP

OpenStack之安裝4網卡ubuntu-14.04網絡詳細配置

安裝ubuntu14.04 網絡配置 virtualbox openstack 四個網卡:網絡1:物理機與虛擬機連接,為host-only類型,主要用來管理網絡,它的dhcp off。網絡2:Open vSwitch占用網絡,也是Host-only類型網絡3:OpenStack中有一些存儲組件

淺談Nginx服務器的安裝,升級、配置、LNMP平臺搭建、nginx+fastcgi、nginx高級技術-地址重寫優化

perl 新的 大文件 文件的 add 並發連接數 文件配置 redirect ntp Nginx服務器:是俄羅斯人編寫的十分輕量級的HTTP服務器,是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP代理服務器 一、安裝Nginx軟件: 準備工

CentOS6.9CentOS7.4的安裝詳細步驟

自動掛載 圖形化 安裝 storage size you dfa select term 安裝前的準備工作:1 VMware已經安裝好2 鏡像文件下載好(在這裏,我用的是CentOS-6.9-x86_64-bin-DVD1.iso和CentOS-7-x86_64-E

MySQL的安裝基礎命令

方式安裝 大小寫 風險 inux admin 高性能 roc 最簡 更改 前面我們介紹了apache httpd server ,而在企業網站平臺中,為了提供更豐富.強大的web應用功能,還需要後臺數據庫和網頁編程語言等多種角色的支持,這裏我們來安裝一下MySQL數據庫。

Centos6.6安裝選包基礎場景說明

oss 圖片 vpd png type 說明 dff 51cto 安裝 d Centos6.6安裝選包及基礎場景說明