linux篇之Nginx web服務器簡單部署

1、安裝部署nginx

1. 部署前先對nginx介紹下別嫌BB:

若是你據說或使用過Apache軟件,那麼很快就會熟悉Nginx軟件,與Apache軟件相似,
Nginx(「engine x」)是一個開源的,支持高性能、高併發的WWW服務器和代理服務軟件。
它是由俄羅斯人lgor Sysoev開發的,最初被應用在俄羅斯的大型網站www.rambler.ru上。
後來做者將源代碼以類BSD許可證的形式開源出來供全球使用。
Nginx能夠運行在UNIX、Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操做系統中html

特徵介紹:  前端

· 支持高併發:能支持幾萬併發鏈接(特別是靜態小文件業務環境)
· 資源消耗少:在3萬併發鏈接下,開啓10個Nginx線程消耗的內存不到200MB(WO CAO NB!!)
· 支持異步網絡I/O事件模型epoll(Linux 2.6+) apache(select)linux

功能介紹:nginx

1)做爲Web服務軟件(處理用戶訪問靜態請求)
2)反向代理或負載均衡服務
3)前端業務數據緩存服務web

nginx軟件模型特色說明:shell

apache與nginx軟件對比說明???
  apache使用select模型
  nginx使用epoll模型apache

  舉例說明:宿舍管理員vim

    select模型版管理員 會一個一個房間查詢人員
    epoll模型版管理員 會進行檢索後,直接找到須要找的人
  舉例說明:幼兒園阿姨
    select模型版阿姨 會一個一個小朋友進行詢問,確認哪一個小朋友須要上廁所
    epoll模型版阿姨 會告知想上廁所小朋友自覺站到響應位置windows

 

2.這裏採用源碼編譯安裝的方式安裝

一個最lowB版的shell安裝腳本瀏覽器

#!/bin/bash
. /etc/init.d/functions

tool_path=/server/tools
download_address=http://nginx.org/download/nginx-1.16.0.tar.gz

[ ! -d ${tool_path} ] && mkdir -p $tool_path
useradd www -s /sbin/nologin/ -M
yum install -y pcre-devel openssl-devel
if [ $? -eq 0 ];
then
	action "yum install success" /bin/true
else
	action "yum install failure" /bin/false
	exit 1
fi

cd $tool_path
wget $download_address
if [ $? -eq 0 ];
then
	action "download success" /bin/true
else
	action "download failure" /bin/false
	exit 1
fi

tar -xf nginx-1.16.0.tar.gz
if [ $? -eq 0 ];
then
	action "tar success" /bin/true
else
	action "tar failure" /bin/false
	exit 1
fi

cd nginx-1.16.0 
./configure --prefix=/application/nginx-1.16.0/ --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
if [ $? -eq 0 ];
then
	action "configure success" /bin/true
else
	action "configure failure" /bin/false
	exit 1
fi
make && make install
if [ $? -eq 0 ];
then
	action "makeinstall success" /bin/true
else
	action "makeinstall failure" /bin/false
	exit 1
fi
ls -s /application/nginx-1.16.0/ /application/nginx
ln -s /application/nginx-1.16.0/ /usr/bin/nginx

#啓動Nginx服務
/usr/bin/nginx
ps -ef|grep nginx

2. 編寫nginx配置文件

 

三個語法格式說明:
①. 大括號要成對出現
②. 每一行指令後面要用分號結尾
③. 每個指令要放置在指定的區塊中

01:簡化配置文件(註釋不少咱們先簡化下)

 

 

cd /application/nginx/conf/
grep -Ev "#|^$" nginx.conf.default >nginx.conf #簡化nginx.conf

 

 

 

02. 實現編寫一個網站頁面(測試下)

 

vim /application/nginx/conf/nginx.conf

worker_processes  1;
events {
        worker_connections  1024;
    }
http {
       include       mime.types;
       default_type  application/octet-stream;
       sendfile        on;
        keepalive_timeout  65;
       server {
            listen       80;
            server_name  www.etiantian.org; 
            location / {
                root   html/www; #站點根目錄
                index  index.html index.htm;
            }
        }
    }

 

 

 

 

03. 若是要實現多個頁面編寫==多個虛擬主機,能夠編寫多個server模塊

  而後建立站點目錄:

  例如:mkdir -p /application/nginx/html/{www,bbs,blog}

 

server {
    listen       80;
    server_name  www.etiantian.org;
    location / {
        root   html/www;
        index  index.html index.htm;
    }
    }
    server {
        listen       80;
        server_name  bbs.etiantian.org;
        location / {
            root   html/bbs;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  blog.etiantian.org;
        location / {
            root   html/blog;
            index  index.html index.htm;
        }
    }

爲了便於管理,每一個站點的server模塊能夠分別編寫在成子配置文件中,只須要在nginx.conf中 include進來就好了.................

 

 

04. 建立站點目錄下首頁文件:

 例如:

for name in www bbs blog;do echo "10.0.0.7 $name.etiantian.org" >/application/nginx/html/$name/index.html;done
for name in www bbs blog;do cat /application/nginx/html/$name/index.html;done
10.0.0.7 www.etiantian.org
10.0.0.7 bbs.etiantian.org
10.0.0.7 blog.etiantian.org

 

 

05. 測試訪問

瀏覽器訪問測試:
注意:須要編寫windows主機hosts文件,進行解析
命令行訪問測試:
利用curl命令在linux系統中訪問測試
注意:須要編寫linux主機hosts文件,進行解析

這樣就部署成功啦!!!

 

二. nginx日誌信息

 1. 錯誤日誌

 

   Syntax:    error_log file [level];
   Default:    
   error_log logs/error.log error;
   Context:    main, http, mail, stream, server, location
   #error_log  logs/error.log;
   #error_log  logs/error.log  notice;
   #error_log  logs/error.log  info;
   
   vim nginx.conf
   error_log  /tmp/error.log error;

 

 例如:

 

補充說明:
===========================================================================================
錯誤日誌的,默認狀況下不指定也沒有關係,由於nginx不多有錯誤日誌記錄的。
但有時出現問題時,是有必要記錄一下錯誤日誌的,方便咱們排查問題。
error_log 級別分爲 debug, info, notice, warn, error, crit 默認爲crit
該級別在日誌名後邊定義格式以下:
error_log /your/path/error.log crit;

crit 記錄的日誌最少,而debug記錄的日誌最多。
若是nginx遇到一些問題,好比502比較頻繁出現,可是看默認的error_log並無看到有意義的信息,
那麼就能夠調一下錯誤日誌的級別,當你調成error級別時,錯誤日誌記錄的內容會更加豐富
===========================================================================================

 

2. 訪問日誌(重點關注)

 

   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '   --- 
   定義日誌信息要記錄的內容格式
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
   access_log  logs/access.log  main;                    --- 調用定義格式信息,生成訪問日 
   志
   $remote_addr       10.0.0.1           --- 訪問客戶端的源地址信息
   $remote_user          -               --- 訪問客戶端認證用戶信息   ???
   [$time_local]                         --- 顯示訪問時間
   $request        GET / HTTP/1.1        --- 請求行信息
   $status              304              --- 狀態碼信息(304狀態碼利用緩存顯示頁面信息)
   $body_bytes_sent                      --- 服務端響應客戶端的數據大小信息
   $http_referer                         --- 記錄連接到網站的域名信息  ???
   $http_user_agent                      --- 用戶訪問網站客戶端軟件標識信息
                                             用戶利用客戶端瀏覽器測試訪問時,win10默認瀏覽器會有 
   異常問
   $http_x_forwarded_for                 --- ???  反向代理
   官方連接:http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log

 

 

3. 對日誌咱們要進行切割,防止一個日誌文件過大

 咱們利用shell腳本就可簡單實現

[root@web01 scripts]# vim cut_log.sh
#!/bin/bash      
data_info=$(date +%F-%H:%M)
mv /application/nginx/logs/www_access.log /application/nginx/logs/access.log.$data_info
/application/nginx/sbin/nginx -s reload
# cut nginx log cron
* */6 * * * /bin/sh /server/scripts/cut_log.sh &>/dev/null    #自定義定時觸發
相關文章
相關標籤/搜索