1. 程式人生 > >二進位制安裝nginx——新手上路

二進位制安裝nginx——新手上路

什麼是Nginx?

Nginx (engine x) 是一個使用c語言開發的高效能的http伺服器及反向代理伺服器。,也是一個IMAP/POP3/SMTP服務。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0釋出於2004年10月4日。官方測試nginx能夠支支撐5萬併發連結,並且cpu、記憶體等資源消耗卻非常低,執行非常穩定。

其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4釋出。

Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。

Nginx的應用場景

      1、 http伺服器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。

      2、 虛擬主機。可以實現在一臺伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。

基於埠的,不同的埠

基於域名的,不同域名

  3、 反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺伺服器不能滿足使用者的請求時,需要用多臺伺服器叢集可以使用nginx做反向代理。並且多臺伺服器可以平均分擔負載,不會因為某臺伺服器負載高宕機而某臺伺服器閒置的情況。

準備工作

[[email protected] ~]# cat /etc/redhat-release

         #檢視系統版本

CentOS Linux release 7.2.1511 (Core)

[[email protected] ~]# uname -r                            #檢視系統核心版本

3.10.0-327.el7.x86_64

[[email protected] ~]# uname -m                           #檢視系統是否64位

x86_64

首先我們還是做服務之前先把奇葩的防火牆給關掉,因為很多規則會撞到牆。

[[email protected] ~]# iptables -F

[[email protected] ~]# iptables -X

[[email protected] ~]# iptables -Z

[[email protected] ~]# iptables -L  

[[email protected]~]#setenforce 0

[[email protected] ~]#vi /etc/sysconfig/selinux               #修改SELINUX

[[email protected] opt]# yum install  pcre-devel  zlib-devel              #安裝pcre和zlibgzip模組,需要 zlib 庫,rewrite模組需要 pcre 庫

[[email protected] ~]# yum info pcre-devel             #info:顯示指定的rpm軟體包的描述資訊和概要資訊;我們顯示一下pcre的詳細資訊

[[email protected] ~]# useradd -s /sbin/nologin -M nginx                   #建立一個nginx的使用者

[[email protected] ~]# id nginx                                                           #看nginx的id資訊

[[email protected] ~]# tar zxf nginx-1.11.2.tar.gz                    #我上傳一個包,然後進行解壓縮nginx-xx.tar.gz包,或者獲取nginx,在http://nginx.org/en/download.html上可以獲取當前最新的版本。

獲知用wget下載

[[email protected] nginx-1.11.2]# ./configure --prefix=/usr/local/nginx--user=nginx --group=nginx           #配置檔案以及使用者等資訊,要在nginx目錄下面執行

[[email protected] nginx-1.11.2]# make && make install        #編譯安裝

[[email protected] ~]# /usr/local/nginx--user\=nginx/sbin/nginx         #啟動一下應用

[[email protected] ~]# ss -tannml | grep 80                           看一下80埠

這個時候登陸IP地址就可以顯示了

接下來寫一個指令碼可以啟動nginx

我們先把服務關閉

[[email protected] ~]# ps aux | grep nginx               #看一下nginx後臺程序佔用埠

[[email protected] ~]# kill -9 4761

[[email protected] ~]# kill -9 4762                           #把埠關閉

這個時候可以發現網頁打不開了

[[email protected] ~]# vi nginx.sh             #寫指令碼

#!/bin/bash

# chkconfig: 2345 97 25

#description nginx-server-scryt

nginx=/usr/local/nginx--user\=nginx/sbin/nginx

case "$1" in

  start )

        netstat -anlpt | grep nginx

        if [ $? -eq 0 ]

         then

           echo "nginx service running!"

        else

           echo "nginx service not runing!"

           $nginx

        fi

      ;;

  restart)

        $nginx -s reload

        if [ $? -eq 0 ]

         then

           echo "nginx server is begin restart"

        else

           echo "nginx server restart"

        fi

      ;;

     stop)

         $nginx -s stop

        if [ $? -eq 0 ]

         then

           echo "nginx server is stop"

        else

           echo "nginx server stop,try again"

        fi

      ;;

   status)

        netstat -anlpt | grep nginx

        if [ $? -eq 0 ]

         then

            echo "nginx server is running!"

        else

            echo "nginx server is not runing.try to restart"

        fi

      ;;

     *)

      echo "Please enter (start|restart|stop|status)"

      ;;

esac

exit 0

[[email protected] ~]# chmod 755 nginx.sh                    #加許可權

[[email protected] ~]# cp nginx.sh  nginx        #複製成目錄

[[email protected] ~]# cp nginx /etc/init.d/              #把nginx目錄給複製到/etc/iniat.d目錄下

[[email protected] init.d]# chkconfig --add nginx           #我把nginx新增到開機自啟動

[[email protected] init.d]# chkconfig --list nginx             #列出nginx開啟

[[email protected] init.d]# service nginx start           #啟動服務