1. 程式人生 > >Nginx安裝與效能優化

Nginx安裝與效能優化

NGINX 安裝

前提:完整的編譯環境 gcc g++ make 開發庫等
系統:Linux Ubuntu-server-12.04-64bit
核心:Linux 3.13.0-68-generic

apt-get install build-essential
apt-get install libtool

1.選定原始碼目錄
可以是任何目錄,本文選定的是/usr/local/src

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz 
tar -zxvf pcre-8.37
.tar.gz cd pcre-8.37 ./configure make sudo make install
cd /usr/local/src
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
sudo make install

4.安裝ssl(某些vps預設沒裝ssl)

 cd /usr/local/src
 wget http://www.openssl.org/source/openssl-1.0.2d.tar.gz
 tar -zxvf openssl-
1.0.2d.tar.gz cd openssl-1.0.2d ./config --prefix=/usr/local --openssldir=/usr/local/ssl make sudo make install ./config shared --prefix=/usr/local --openssldir=/usr/local/ssl make clean make sudo make install

5.安裝nginx
Nginx 一般有兩個版本,分別是穩定版和開發版,您可以根據您的目的來選擇這兩個版本的其中一個,下面是把 Nginx 安裝到 /usr/local/nginx 目錄下的詳細步驟:

cd /usr/local/src
wget http://nginx.org/download/nginx-1.9.6.tar.gz
tar -zxvf nginx-1.9.6.tar.gz
cd nginx-1.9.6
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-stream \
--with-pcre=/usr/local/src/pcre-8.37 \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-openssl=/usr/local/src/openssl-1.0.2d
make
sudo make install

–with-stream 用於啟用支援TCP
–with-pcre=/usr/src/pcre-8.37 指的是pcre-8.37 的原始碼路徑。
–with-zlib=/usr/src/zlib-1.2.8 指的是zlib-1.2.8 的原始碼路徑。

6.啟動
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
開啟瀏覽器訪問此機器的 IP,如果瀏覽器出現 Welcome to nginx! 則表示 Nginx 已經安裝並執行成功

NGINX 解除安裝

apt解除安裝nginx方法(僅限於使用apt-get install 安裝的Nginx)
解除安裝方法1.
刪除nginx,保留配置檔案

sudo apt-get remove nginx

刪除配置檔案

rm -rf /etc/nginx

解除安裝方法2.
刪除nginx連帶配置檔案

sudo apt-get purge nginx # Removes everything.

解除安裝不再需要的nginx依賴程式

sudo apt-get autoremove

NGINX Configuration

以下配置檔案適用於 Nginx TCP 負載均衡

user    root root;
#nginx程序數,建議按照cpu數目來指定,一般為它的倍數。
worker_processes    4;

#為每個程序分配cpu,上例中將8個程序分配到8個cpu,當然可以寫多個,或者將一個程序分配到多個cpu。
worker_cpu_affinity 00010000 00100000 01000000 10000000;

error_log   /usr/local/nginx/logs/error.log;
error_log  /usr/local/nginx/logs/error.log  notice;
error_log  /usr/local/nginx/logs/error.log  info;
#pid        /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 204800;

#use epoll 使用epoll的I/O模型。
#worker_connections  每個程序允許的最多連線數
events {
    use epoll;
    worker_connections  204800;
}
stream {
    upstream backend {
        server 192.168.90.3:1883    max_fails=3 fail_timeout=30s;
        server 192.168.90.5:1883    max_fails=3 fail_timeout=30s;
        server 192.168.90.197:1883  max_fails=3 fail_timeout=30s;
    }
    server {
        listen 192.168.90.5:29535;
        proxy_connect_timeout 1s;
        #proxy_timeout 3s;
        proxy_pass backend;
    }
}

Nginx 啟動、停止、平滑啟動、平滑升級

1.Nginx 啟動
啟動nginx,可以執行一下命令(預設安裝位置):

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
// 引數“-c”指定了配置檔案的路徑,如果不加,則Nginx會預設載入其安裝目錄的conf子目錄中的ngin.conf

2.Nginx 停止
nginx的停止方法有很多種,一般是傳送系統訊號給nginx主程序來停止nginx。我們通過ps命令來查詢nginx的主程序號

ps -ef |grep nginx

備註資訊為“master process”它表示主程序。為“worker”的是子程序。
如果在nginx.conf中指定了pid檔案存放路徑,則該檔案存放的就是nginx的主程序號。
如果沒有指定,則預設存放在Nginx安裝目錄的log目錄下。所以我們還可以這樣做:
kill -訊號型別 ‘/usr/local/nginx/logs/nginx.pid’

nginx支援以下幾種訊號:
TERM,INT :快速關閉
QUIT:從容關閉
HUP:平滑啟動
USR1:重新開啟日誌檔案
USR2:平滑升級可執行程式
EINCH:從容關閉工作程序
(1)從容停止nginx
kill -QUIT Nginx主程序號
(2)快速停止Nginx
kill -TERM Nginx主程序號
(3)強制停止所有nginx程序
pkill -9 Nginx主程序號

3.Nginx 平滑啟動/Nginx 重載入
如果改變了配置檔案,想重啟讓其生效,同樣可以通過傳送系統訊號給Nginx主程序。
不過,在重啟之前,要確認配置檔案的語法是正確的,否則將不會載入新的配置項。
通過以下語句測試配置檔案語法是否正確:

 /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf  
 // 其中-t表示測試,並不真正執行。

然後,通過以下命令重載入Nginx配置:

 kill -HUP master程序號 

執行上面命令之後,Nginx執行新的工作程序,舊工作程序繼續為已有的連線服務,等所有舊的連線成功後,舊的工作程序才被關閉。

4.Nginx 平滑升級
當需要將正在執行的nginx升級、新增/刪除伺服器模組時,可以在不中斷的情況下使用新版本、重編譯的nginx可執行程式替換舊版本的可執行程式。步驟如下:
(1)備份舊的可執行程式
(2)傳送以下指令

kill -USR2 舊的版本nginx主程序號

(3)舊版本的nginx的主程序將重新命名他的pid檔案為.oldbin。然後執行新版本的nginx可執行程式。依次啟動新的主程序和新的工作程序。
(4)此時新舊版本的nginx會同時執行,共同處理輸入請求。要逐步停止舊版本的nginx例項,需要傳送WINCH訊號給舊的主程序,然後他的工作程序就從容關閉:

kill -WINCH 舊版本的主程序號

(5)一段時間後,舊的工作程序處理完所有的已連線請求後退出,僅有新的工作程序來處理輸入請求。
(6)這時候我們可以決定是使用新的版本還是恢復到舊版本。

5.Nginx 啟動指令碼

    #!/bin/sh
    # chkconfig: 2345 85 15
    # description:Nginx Server

    NGINX_HOME=/usr/local/nginx
    NGINX_SBIN=$NGINX_HOME/sbin/nginx
    NGINX_CONF=$NGINX_HOME/conf/nginx.conf
    NGINX_PID=$NGINX_HOME/logs/nginx.pid

    NGINX_NAME="Nginx"

    . /etc/rc.d/init.d/functions

    if [ ! -f $NGINX_SBIN ]
    then
        echo "$NGINX_NAME startup: $NGINX_SBIN not exists! "
        exit
    fi

    start() {
        $NGINX_SBIN -c $NGINX_CONF
        ret=$?
        if [ $ret -eq 0 ]; then
            action $"Starting $NGINX_NAME: " /bin/true
        else
            action $"Starting $NGINX_NAME: " /bin/false
        fi
    }

    stop() {
        kill `cat $NGINX_PID`
        ret=$?
        if [ $ret -eq 0 ]; then
            action $"Stopping $NGINX_NAME: " /bin/true
        else
            action $"Stopping $NGINX_NAME: " /bin/false
        fi
    }

    restart() {
        stop
        start
    }

    check() {
        $NGINX_SBIN -c $NGINX_CONF -t
    }

    reload() {
        kill -HUP `cat $NGINX_PID` && echo "reload success!"
    }

    relog() {
        kill -USR1 `cat $NGINX_PID` && echo "relog success!"
    }

    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            restart
            ;;
        check|chk)
            check
            ;;
        status)
            status -p $NGINX_PID
            ;;
        reload)
            reload
            ;;
        relog)
            relog
            ;;
        *)
            echo $"Usage: $0 {start|stop|restart|reload|status|check|relog}"
            exit 1
    esac

上面是nginx的啟動指令碼,只要把它拷貝至/etc/init.d目錄下,就可以通過service nginx start等目錄操作nginx。

相關推薦

Nginx安裝效能優化

NGINX 安裝 前提:完整的編譯環境 gcc g++ make 開發庫等 系統:Linux Ubuntu-server-12.04-64bit 核心:Linux 3.13.0-68-generic apt-get install build-esse

nginx安全效能優化(上部)

Nginx——Ngine X,是一款自由的、開源的、高效能HTTP伺服器和反向代理伺服器;也是一個IMAP、POP3、SMTP代理伺服器;也就是說Nginx本身就可以託管網站(類似於Tomcat一樣),進行Http服務處理,也可以作為反向代理伺服器使用。 Nginx 解

Tomcat8安裝, 安全配置效能優化

 為了便於檔案管理,個人習慣  在/opt目錄下建立 一個install目錄用於存放 軟體安裝包,在/usr 目錄下建立local資料夾使用者存放解壓檔案 下載安裝包: wget http://apache.fayea.com/tomcat/tomcat-8/v8.0.32/bin/apache-tomc

【最全】Nginx安裝優化

Nginx安裝 一、 安裝依賴包 1. Ubuntu平臺 安裝gcc g++的依賴庫 apt-get install build-essential apt-get install libtool 安裝 pcre依賴庫 cd /usr

Nginx安裝使用

表示 cli 3.1 replace 需要 網站 pop emp 文字 Nginx安裝與使用 Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所

mac終端nginx安裝操作

與操作 終端 use ins 啟動 強制 highlight 進程 class nginx安裝命令 安裝Homebrew:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install

Linux中Nginx安裝配置詳解

cpan .net 語言 roo disable 方便 sbin wget 一個 安裝所需環境 Nginx 是 C語言 開發,建議在 Linux 上運行,當然,也可以安裝 Windows 版本,本篇則使用 CentOS 7 作為安裝環境。 上網配置: 如果安裝了cen

Nginx安裝配置:默認虛擬主機、用戶認證和域名重定向

Nginx安裝 虛擬主機 重定向 用戶認證 一、Nginx安裝 1、下載並解壓安裝包 [root@zhulinux-02 ~]# cd /usr/local/src/ [root@zhulinux-02 src]# wget http://nginx.org/download/nginx-1.

Nginx安裝配置

.exe http tps 下載安裝 nbsp 下界 win pan org 本篇只介紹在window環境下的安裝和配置 1.首先訪問Nginx官網 https://nginx.org/ 下載安裝包: 2.解壓到相應的目錄,比如我是d盤 然後修改目錄名字為nginx,進

Nginx安裝升級 Nginx服務器 Nginx虛擬主機 、 HTTPS加密網站

fault 用戶 cli cipher pat 案例 fir 服務器 算法 案例1:搭建Nginx服務器案例2:用戶認證案例3:基於域名的虛擬主機案例4:SSL虛擬主機1 案例1:搭建Nginx服務器1.1 問題 在IP地址為192.168.4.5的主機上安裝部署Nginx

nginx安裝掛載

分享 ref .com 新硬盤 def defaults net 圖片 .html Linux下添加新硬盤,分區及掛載 http://blog.chinaunix.net/uid-25829053-id-3067619.html vim /etc/fstab /de

centos 6.x和7.x 下nginx安裝配置

一、安裝gcc(命令:yum install gcc)   備註:可以輸入gcc -v 查詢版本資訊,看系統是否自帶安裝 二、安裝pcre(命令: yum install pcre-devel) 三、安裝zlib 四、安裝openssl 綜合命令:   yum -y inst

nginx監控效能調優

監控 nginx有自帶的監控模組,編譯nginx的時候,加上引數 --with-http_stub_status_module #配置指令 ./configure --prefix=/usr/local --user=nginx --group=nginx

Nginx安裝架構說明

一 安裝環境準備 1.linux 核心2.6及以上版本: 只有2.6之後才支援epool ,在此之前使用select或pool多路複用的IO模型,無法解決高併發壓力的問題。通過命令uname -a 即可檢視。 #檢視 linux 核心 uname -a 2.GCC編譯器

1102_Centos下 Nginx安裝配置

Centos下 Nginx安裝與配置 Nginx是一款輕量級的網頁伺服器、反向代理伺服器。相較於Apache、lighttpd具有佔有記憶體少,穩定性高等優勢。它最常的用途是提供反向代理服務。 安裝 在Centos下,yum源不提供nginx的安裝,可以通過切換yum源的方法獲取安裝

Nginx安裝升級

升級 新版本 lte useradd 進行 quit efi 後端 pst Nginx WEB服務器最主要就是各種模塊的工作,模塊從結構上分為核心模塊、基礎模塊和第三方模塊,其中三類模塊分別如下: 核心模塊:HTTP模塊、EVENT模塊和MAIL模塊等;

Centos7.3和Samba4.7安裝效能優化

Centos7.3和Samba4.7安裝   1.系統環境: 系統:Centos 7.3.1611 x64位 服務版本:samba-4.7.1、samba-client-4.7.1   2.Samba 簡介 Samba 是在Linux和UNIX系統

基於 Nginx 的 HTTPS 效能優化實踐

前言 分享一個卓見雲的較多客戶遇到HTTPS優化案例。 隨著相關瀏覽器對HTTP協議的“不安全”、紅色頁面警告等嚴格措施的出臺,以及向 iOS 應用的 ATS 要求和微信、支付寶小程式強制 HTTPS 需求,以及在合規方面如等級保護對傳輸安全性的要求都在推動 HTTPS 的發展。 雖然 HTTPS 優化

基於 Nginx 的 HTTPS 效能優化

前言 分享一個卓見雲的較多客戶遇到HTTPS優化案例。 隨著相關瀏覽器對HTTP協議的“不安全”、紅色頁面警告等嚴格措施的出臺,以及向 iOS 應用的 ATS 要求和微信、支付寶小程式強制 HTTPS 需求,以及在合規方面如等級保護對傳輸安全性的要求都在推動 HTTPS 的發展。 雖然 HTTPS 優化

前端階段性總結(二):頁面渲染機制效能優化

引言: 轉前端一年了,期間工作較忙,也沒時間整理一些知識體系,此係列文章是對前端基礎的一些回顧與總結。本文主要介紹瀏覽器工作的原理以及一些優化手段。 一、瀏覽器渲染過程 1. 瀏覽器的主要結構: 2. 瀏覽器的多程序模型: 以chorme為例: Browser