Liunx之nginx配置

1、nginx安裝

卸載yum安裝的ngjnxhtml

yum remove nginx -y 

編譯安裝nginx步驟前端

編譯安裝nginx的步驟
1.解決軟件依賴
yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel
 openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
 gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

2.下載nginx的源代碼包,這裏用的淘寶的tengine
wget http://tengine.taobao.org/download/tengine-2.3.1.tar.gz

3.解壓縮tnginx包
tar -zxvf tengine-2.3.1.tar.gz

4.進入源碼目錄,開始編譯三部曲
./configure --prefix=/opt/tngx231/
make && make install 

5.能夠使用了
發現缺乏sqllite這個一個軟件依賴包,就得直接刪除編譯好的軟件,從新編譯便可

6.進入安裝好的tngx321目錄,查看有哪些東西
conf  存放nginx的配置文件
html  存放前端文件的
logs  存放nginx的日誌文件

進入sbin 啓動nginx
./nginx

7.配置path變量,能夠快捷使用nginx命令
vim /etc/profile
PATH='/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tngx231/sbin'

8.查看nginx的首頁文件 index.html

2、nginx配置

nginx的功能性學習,全部的功能都是經過nginx.conf配置文件定義的python

修改配置參數,就實現了不一樣的功能nginx

一、使用nginx配置一個站點,進行訪問,例如index.html web

vim /html/index.html

二、nginx.conf中的配置sql

【虛擬主機站點功能】django

server {
        # 監聽端口
        listen       85;
        # 域名能夠有多個用空格隔開
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
        #網站的路徑匹配,如同django的urls匹配,對用戶的訪問url進行路徑分配
        #當請求url長這樣時:
        # 192.168.16.142:85/  就走以下location配置        
        location / {
            #deny  192.168.16.0/24;
            #root參數是定義網頁根目錄的,能夠修改
            root   /opt/html;
            #index 定義網頁首頁名字的
            index  index.html index.htm;
        }
        #當用戶請求url是 192.168.16.142:85/pic/monkeyKing.jpg
        location /pic  {
            #經過alias別名參數,去這個路徑下找
            alias   /opt/pic/;
        }
        # 404頁面
        error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
    }

【日誌功能】vim

找到nginx.conf中的http{}代碼塊,而後,找到裏面的以下配置windows

#日誌格式設定
        #$remote_addr與$http_x_forwarded_for用以記錄客戶端的ip地址;
        #$remote_user:用來記錄客戶端用戶名稱;
        #$time_local: 用來記錄訪問時間與時區;
        #$request: 用來記錄請求的url與http協議;
        #$status: 用來記錄請求狀態;成功是200,
        #$body_bytes_sent :記錄發送給客戶端文件主體內容大小;
        #$http_referer:用來記錄從那個頁面連接訪問過來的;
        #$http_user_agent:記錄客戶瀏覽器的相關信息;
        #一般web服務器放在反向代理的後面,這樣就不能獲取到客戶的IP地址了,經過$remote_add拿到的IP地址是反向代理服務器的iP地址。
     反向代理服務器在轉發請求的http頭信息中,能夠增長x_forwarded_for信息,用以記錄原有客戶端的IP地址和原來客戶端的請求的服務器地址。
log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';

全部的日誌信息和錯誤信息都在logs文件夾下:瀏覽器

access.log日誌信息:

error.log錯誤日誌:

nginx.pid當前nginx運行的進程id:

【禁止訪問】

在nginx.conf中,找到以下參數,修改

 

location / {
     #拒絕訪問,192.168.16.0網段的同窗都沒法訪問  /24是子網掩碼的意思
    deny  192.168.16.0/24;
    root   html;
    index  index.html index.htm;
}

 

【修改虛擬主機的家目錄】

虛擬主機就是nginx.conf中 server{}標籤訂義的代碼
網站的路徑匹配,如同django的urls匹配,對用戶的訪問url進行路徑分配

#當請求url長這樣時:
# 192.168.16.142:85/  就走以下location配置        
location / {
            #deny  192.168.16.0/24;
            #root參數是定義網頁根目錄的,能夠修改
            root   /opt/html;
            #index 定義網頁首頁名字的
            index  index.html index.htm;
        }
#當用戶請求url是 192.168.16.142:85/pic/monkeyKing.jpg
location /pic  {
        #經過alias別名參數,去這個路徑下找
        alias   /opt/pic/;
}

location /media {
        alias  /opt/media;
}

【404頁面】

-nginx的404頁面,在nginx.conf中,找到一個error_page 參數
    #當請求錯誤碼是404 時,就返回一個404.html給用戶查看,而且這個文件在網頁根目錄下
    error_page  404              /404.html;

【虛擬主機功能】

一個nginx下運行多個網址

# 找到nginx安裝目錄下的conf文件夾,找到nginx.conf
# 經過編寫多個server標籤實現多虛擬主機
# nginx.conf配置以下:
    # 虛擬主機1:
    server {
        # 監聽的端口
        listen       80;
        #這裏進行域名匹配
        server_name  www.s20hanju.tv;
        #這裏進行路徑匹配
        location / {
            #root定義網頁根目錄
            root   /opt/s20/hanju;
            #index 定義網站首頁文件名
            index  index.html;
        }
    }
    # 虛擬主機2:
    server {
        listen  81;
        server_name www.s20lol.tv;
        location / {
                root /opt/s20/lol;
                index index.html;
        }
    }

# 改完nginx.conf的配置,須要重啓nginx -s reload

# 分別準備hanju和lol的數據文件夾

# 而後再去windows中準備hosts文件,進行域名解析
# 文件絕對路徑
# C:\Windows\System32\drivers\etc\hosts
# 內容以下:
    192.168.16.142  www.s20hanju.tv
    192.168.16.142  www.s20lol.tv

# 最後在windows中進行訪問,分別訪問lol和hanju的網址內容

域名解析是先從本地的host文件中開始找,若是找不到會去dns找;
三、nginx的啓停命令

直接輸入 nginx  是啓動 
nginx -s stop  中止
nginx -s reload  平滑加載,不重啓nginx,從新讀取配置文件,生效  

四、liunx的壓測命令

1.安裝ab命令
yum -y install httpd-tools 
2.使用ab壓測命令
    -n requests #執行的請求數,即一共發起多少請求。

    -c concurrency #請求併發數。

    -k #啓用HTTP KeepAlive功能,即在一個HTTP會話中執行多個請求。
   # 進行壓測命令,統計網站請求數
    ab -kc 1000 -n 100000 http://192.168.16.142/

五、nginx狀態模塊

找到nginx.conf而後再找到一個虛擬主機server標籤,添加以下配置便可

location /status {
        #開啓nginx狀態功能
             stub_status on;
}  
相關文章
相關標籤/搜索