百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化

Nginx 是一個高性能的 Web 和反向代理服務器, 它具有有很多非常優越的特性:
作爲 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的併發連接,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。能夠支持高達 50,000 個併發連接數的響應。
作爲負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP,也可以支持作爲 HTTP代理服務器 對外進行服務。Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。
作爲郵件代理服務器: Nginx 同時也是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作爲郵件代理服務器),Last.fm 描述了成功並且美妙的使用經驗。
Nginx 安裝非常的簡單,配置文件 非常簡潔(還能夠支持perl語法),Bugs非常少的服務器: Nginx 啓動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啓動。你還能夠在 不間斷服務的情況下進行軟件版本的升級。
爲什麼nginx有如此多的優勢呢?這裏我們就要從nginx的內核說起,雖然nginx核心依然是採用IO多路複用的模型,和apache一樣,但是nginx使用的是功能更爲強大的epoll作爲內核代理,如下圖所示
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化



Nginx功能概述
HTTP基礎功能:
處理靜態文件,索引文件以及自動索引;
反向代理加速(無緩存),簡單的負載均衡和容錯;
FastCGI,簡單的負載均衡和容錯;
模塊化的結構。過濾器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 。在SSI過濾器中,到同一個 proxy 或者 FastCGI 的多個子請求併發處理;
SSL 和 TLS SNI 支持;
IMAP/POP3 代理服務功能:
使用外部 HTTP 認證服務器重定向用戶到 IMAP/POP3 後端;
使用外部 HTTP 認證服務器認證用戶後連接重定向到內部的 SMTP 後端;
認證方法:
POP3: POP3 USER/PASS, APOP, AUTH LOGIN PLAIN CRAM-MD5;
IMAP: IMAP LOGIN;
SMTP: AUTH LOGIN PLAIN CRAM-MD5;
SSL 支持;
在 IMAP 和 POP3 模式下的 STARTTLS 和 STLS 支持;
支持的操作系統:
FreeBSD 3.x, 4.x, 5.x, 6.x i386; FreeBSD 5.x, 6.x amd64;
Linux 2.2, 2.4, 2.6 i386; Linux 2.6 amd64;
Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;
MacOS X (10.4) PPC;
結構與擴展:
一個主進程和多個工作進程。工作進程是單線程的,且不需要特殊授權即可運行;
kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), rt signals (Linux 2.2.19+), /dev/poll (Solaris 7 11/99+), select, 以及 poll 支持;
kqueue支持的不同功能包括 EV_CLEAR, EV_DISABLE (臨時禁止事件), NOTE_LOWAT, EV_EOF, 有效數據的數目,錯誤代碼;
sendfile (FreeBSD 3.1+), sendfile (Linux 2.2+), sendfile64 (Linux 2.4.21+), 和 sendfilev (Solaris 8 7/01+) 支持;
輸入過濾 (FreeBSD 4.1+) 以及 TCP_DEFER_ACCEPT (Linux 2.4+) 支持;
10,000 非活動的 HTTP keep-alive 連接僅需要 2.5M 內存。
最小化的數據拷貝操作;
其他HTTP功能:
基於IP 和名稱的虛擬主機服務;
Memcached 的 GET 接口;
支持 keep-alive 和管道連接;
靈活簡單的配置;
重新配置和在線升級而無須中斷客戶的工作進程;
可定製的訪問日誌,日誌寫入緩存,以及快捷的日誌回捲;
4xx-5xx 錯誤代碼重定向;
基於 PCRE 的 rewrite 重寫模塊;
基於客戶端 IP 地址和 HTTP 基本認證的訪問控制;
PUT, DELETE, 和 MKCOL 方法;
支持 FLV (Flash 視頻);
帶寬限制;



Nginx常用功能模塊簡介
基本模塊
HTTP Core模塊 //http核心模塊
HTTP Upstream 模塊 //這個模塊提供一個簡單方法來實現在輪詢和客戶端IP之間的後端服務器負荷平衡。
HTTP Access 模塊 //此模塊提供了一個簡易的基於主機的訪問控制.
HTTP Auth Basic 模塊 //該模塊可以使你使用用戶名和密碼基於 HTTP 基本認證方法來保護你的站點或其部分內容。
HTTP AutoIndex 模塊 //此模塊用於自動生成目錄列表.
Browser //該模塊創建變量,變量的值取決於請求頭“用戶代理”。
Charset //該模塊將文本編碼添加到“內容類型指示”響應頭中。
Empty GIF //本模塊在內存中常駐了一個 1x1 的透明 GIF 圖像,可以被非常快速的調用。
FastCGI //這個模塊允許Nginx 與FastCGI 進程交互,並通過傳遞參數來控制FastCGI 進程工作。
Geo
//該模塊創建變量,其值依賴於客戶端的IP地址。
Gzip //這個模塊支持在線實時壓縮輸出數據流
HTTP Headers 模塊 //本模板可以設置HTTP報文的頭標。
HTTP Index 模塊
Http Referer 模塊 //這個模塊使得可以用請求頭部中“referer”的錯誤值來阻止對站點的訪問。
HTTP Limit Zone 模塊 //本模塊可以針對條件,進行會話的併發連接數控制。
HTTP Limit Requests模塊
//這個模塊允許您限制會話的請求數量,或者限制一個地址的特殊情況。
Log
Map //該模塊允許您將一組值分類或映射到一組不同的值中,並將結果存儲在變量中。
Memcached //你可以利用本模塊來進行簡單的緩存以提高系統效率。本模塊計劃在未來進行擴展。
HTTP Proxy 模塊 //此模塊專伺將請求導向其它服務.
Rewrite //該模塊允許使用正則表達式改變URI,並且根據變量來轉向以及選擇配置。
SSI模塊 //此模塊處理服務器端包含文件(ssi)的處理. 列表中的命令當前並未完全支持.
User ID
//模塊給出了用於識別客戶端的cookie。對於日誌記錄,可以使用變量



其他模塊
HTTP Addition 模塊 //該模塊在當前位置響應之前和之後添加其他位置的響應。
Embedded Perl
//該模塊可以通過SSI直接在NGIX和Perl Perl中執行Perl。
FLV //本模塊提供FLV文件加載基於時間位移. 本模塊必需在編譯nginx時加上--with-http_flv_module.
Gzip Precompression //在開始壓縮創建硬盤上的文件之前,本模塊將查找同目錄下同名的.gz壓縮文件,以避免同一文件再次壓縮。編譯時加上:./configure --with-http_gzip_static_module
Random Index //從目錄中選擇一個隨機目錄索引
GeoIP //本模塊ngx_http_geoip_module的變量基於IP地址匹配MaxMind GeoIP 二進制文件. 這個模塊開始出現在nginx0.8.6。模塊必需有geo數據庫和讀取數據庫類
Real IP* //這個模塊允許將客戶端的IP地址從請求頭更改爲值(e. g. X-Real-IP or X-Forwarded-For)。如果nginx工作在L7負載均衡器的某個代理之後,並且請求來自本地IP,但是代理添加具有客戶端IP的請求頭,那麼它很有用。這個模塊不是默認構建的,用配置選項啓用它--with-http_realip_module

SSL //該模塊能夠HTTPS支持。
Stub Status //這個模塊能夠獲取Nginx自上次啓動以來的工作狀態,此模塊非核心模塊,需要在編譯的時候手動添加編譯參數 --with-http_stub_status_module
Substitution //本模塊可以在nginx的迴應中查找和替換文本.在編譯nginx時必需加上--with-http_sub_module option
WebDAV //這個模塊可以爲Http webDAV 增加 PUT, DELETE, MKCOL, COPY 和 MOVE 等方法。這個模塊在默認編譯的情況下不是被包含的,你需要在編譯時指定如下參數:./configure --with-http_dav_module
Google Perftools
//這個模塊能夠對接開啓谷歌性能工具。該模塊出現在NGIX版本0.629中。默認情況下,模塊開啓,用配置選項啓用./configure --with-google_perftools_module
XSLT* //該模塊是一個藉助於一個或多個XSLT模板轉換XML響應的過濾器。用配置選項啓用./configure --with-http_xslt_module
Secure Link //這個模塊是計算和檢測URL請求中必須的安全標識,這個模塊沒有默認編譯,在編譯Nginx時,必須使用明確的配置參數--with-http_secure_link_module
Image Filter //這個模塊用來分發JPEG,GIF和PNG圖片。這個沒有默認開啓,在編譯nginx中通過./configure參數配置--with-http_image_filter_module

mail模塊
Mail Core模塊 //Nginx 能夠處理和代理以下郵件協議:IMAP POP3 SMPT
Mail Auth模塊 //auth_http URL 使用這條指令你可以設置URL像HTTP服務器那樣的驗證。auth_http_header 使用這條指令你可以添加HTTP頭和值到驗證進程中。這個使得可以用共享密碼來卻不請求得到Nginx的響應。auth_http_timeout 使用這條指令你可以設置驗證進程的超時時間
Mail Proxy模塊 //Nginx可以代理IMAP,POP3和SMTP協議
Mail SSL模塊 //這個模塊使得POP3/IMAP/SMTP可以使用SSL/TLS.配置已經定義了HTTP SSL模塊,但是不支持客戶端證書檢測。


手工編譯安裝nginx(1.12.0版本)
--------安裝依賴包-------------------
yum -y install pcre-devel zlib-devel gcc gcc-c++

useradd -M -s /sbin/nologin nginx //創建進程用戶用於管理nginx

tar zxvf nginx-1.12.0.tar.gz -C /opt/

-----------編譯----------------------
cd nginx-1.12.0/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
腳本註釋:--with-http_stub_status_module //支持狀態統計

-----檢查、啓動、重啓、停止--------
nginx -t //檢查
nginx //啓動
killall -1 nginx //重啓
killall -3 nginx //停止

yum install elinks -y
elinks http://localhost
-------製作管理角本--------
vi /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
chmod +x /etc/init.d/nginx
chkconfig --add nginx
chkconfig --level 35 nginx on
systemctl start nginx
systemctl status nginx
腳本註釋
#!/bin/bash
#chkconfig: - 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid" //申明變量 PID文件,及nginx命令路徑
case "$1" in ////$1表示指代以下狀況(start,stop,status....)
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
chmod +x /etc/init.d/nginx
chkconfig --add nginx
chkconfig --level 35 nginx on
systemctl start nginx
systemctl status nginx


nginx常用優化(一)隱藏版本號:在生產環境中,需要隱藏nginx的版本號,以避免泄露nginx的版本。
(本地IP:192.168.252.165)
1.第一種方法直接修改配置文件
curl -I http://192.168.252.165/ 查看版本信息
HTTP/1.1 200 OK
Server: nginx/1.12.0 //版本號爲1.12.0
Date: Fri, 05 Oct 2018 14:37:17 GMT

vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; //添加
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化
systemctl reload nginx.service
curl -I http://192.168.252.165
HTTP/1.1 200 OK
Server: nginx //版本號被隱藏
Date: Fri, 05 Oct 2018 14:38:48 GMT

2.第二種方法修改源代碼文件

vim /opt/nginx-1.12.0/src/core/nginx.h //在編譯安裝前修改該文件
#define NGINX_VERSION "1.12.0" //修改
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化



常用優化(二)修改用戶和組:nginx運行時進程需要有用戶和組的支持,用以實現對網站文件讀取時進行訪問控制。主進程由root創建,子進程由指定的用戶與組創建。Nginx默認使用nobody用戶賬號與組賬號,一般也要進行修改。
1:第一種方法編譯安裝時指定
./configure --prefix=/usr/local/nginx //指定用戶名爲nginx
--user=nginx --group=nginx //指定組名爲nginx
2:第二種方法vim /usr/local/nginx/conf/nginx.conf
user nginx nginx; //首行修改
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化



常用優化(三)配置網頁緩存時間:當nginx將網頁數據返回給客戶端後,可設置緩存的時間,以便日後進行想用給內容的請求時直接返回,避免重複請求,加快訪問速度,一般只針對靜態資源進行設置,對動態網頁不用設置緩存時間。
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
    }

    location ~\.(gif|jpg|jpeg|png|bmp|ico)$ {
      root  html;
      expires 1d;
    }

腳本註釋:
location ~.(gif|jpg|jpeg|png|bmp|ico)$ {
root html;
expires 1d;
}//添加 表示緩存靜態網頁是時間爲1天
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化
這時緩存時間已經開啓以下是驗證過程
cd /usr/local/nginx/html
cp /opt/game.jpg ./ //把圖片文件拷貝到該文件夾下
vim index.html

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<img src="game.jpg"> //添加本行

systemctl restart nginx.service
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化
去windows客戶端用抓包工具驗證
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化



常用優化(四)日誌分割:隨着nginx運行時間的增加,產生的日誌也會增加,爲了方便掌握nginx的運行狀態,需要時刻關注nginx日誌文件。太大的日誌文件對監控是一個大災難,非常不便於分析排查,因此需要定期地進行日誌文件的切割。
vim /opt/fenge.sh //編寫腳本/opt/fenge.sh

#!/bin/bash
#Filename:fenge.sh
d=$(date -d "-1 day" "+%Y%m%d")
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"
[ -d $logs_path ] || mkdir -p $logs_path
mv /usr/local/nginx/logs/access.log $logs_path/test.com-access.log-$d
kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 | xargs rm -rf

chmod +x fenge.sh
腳本註釋
#!/bin/bash
#Filename:fenge.sh
d=$(date -d "-1 day" "+%Y%m%d") #顯示前一天的日期%Y%m%d=年月日
logs_path="/var/log/nginx" #指定保存日誌路徑
pid_path="/usr/local/nginx/logs/nginx.pid" #進程ID路徑
[ -d $logs_path ] || mkdir -p $logs_path #創建日誌文件目錄
mv /usr/local/nginx/logs/access.log $logs_path/test.com-access.log-$d #移動並重命名日誌文件
kill -USR1 $(cat $pid_path) #重建新日誌文件
find $logs_path -mtime +30 | xargs rm -rf #刪除30天之前的日誌文件

./fenge.sh
cd /var/log/nginx/
ls
test.com-access.log-20181006 //按日期分割了日誌文件
cat /usr/local/nginx/logs/access.log //原來的日誌文件重新創建
crontab -e //將腳本引入週期性計劃任務
0 1 * /opt/fenge.sh //每天凌晨1:00執行腳本



常用優化(五)設置連接超時:在企業網站中,爲了避免同一個客戶長時間佔用連接,造成資源浪費,可設置相應的連接超時參數,實現對連接訪問時間的控制。

http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
#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;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65 180;
client_header_timeout 80;
client_body_timeout 80;

腳本註釋
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
#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;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65 180;    //修改 服務器超時時間爲65s,客戶端爲180s
client_header_timeout 80;     //添加 指定等待客戶端發送請求頭部的超時時間

client_body_timeout 80; //添加 請求體讀超時時間
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化
客戶端訪問網址抓取數據報文,響應頭中顯示了超時時間爲180S.
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化



常用優化(六)更改進程數:在高併發環境中,需要啓動更多的nginx進程以保證快速響應,用以處理用戶的請求,避免造成阻塞。
ps aux | grep nginx //查看nginx運行進程的個數
root 50306 0.0 0.0 20544 620 ? Ss 09:24 0:00 nginx: master process /usr/local/nginx/sbin/nginx //主進程開啓了1個
nginx 50307 0.0 0.1 23072 1648 ? S 09:24 0:00 nginx: worker process //子進程開啓了1個
vim /usr/local/nginx/conf/nginx.conf

user nginx nginx;
worker_processes 2; //修改

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
worker_connections 2048; //修改
}
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化
systemctl stop nginx.service
systemctl start nginx
ps aux | grep nginx
root 54705 0.0 0.0 20544 616 ? Ss 13:17 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 54706 0.0 0.1 23472 1664 ? S 13:17 0:00 nginx: worker process
nginx 54707 0.0 0.1 23472 1668 ? S 13:17 0:00 nginx: worker process //子進程變爲2個
root 54717 0.0 0.0 112720 980 pts/1 S+ 13:17 0:00 grep --color=auto nginx

修改nginx的配置文件中的worker_prcesses參數,一般設置爲CPU的個數或者核心數,在高併發的情況下可以設置爲CPU的個數或者核心數的2倍
cat /proc/cpuinfo | grep -c "physical" //查看CPU的核數以確定參數



常用優化(七)配置網頁壓縮:nginx的ngx_http_gzip_module壓縮模塊提供了對文件內容壓縮的功能,允許nginx服務器將輸出內容發送到客戶端之前進行壓縮,以節約網站的帶寬,提升用戶的訪問體驗。
vim /usr/local/nginx/conf/nginx.conf

gzip  on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;    
gzip_types text/plain text/html text/javascript;
gzip_vary on;

百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化
腳本註釋
gzip on; //開啓壓縮功能
gzip_min_length 1k; //允許壓縮的頁面最小字節數,低於1k不壓縮
gzip_buffers 4 16k; //表示申請4個單位爲16k的內存作爲壓縮結果流緩存,默認值是申請與原始數據大小相同的內存空間來存儲gzip壓縮結果
gzip_http_version 1.1; //用於設置識別http協議版本,默認是1.1
gzip_comp_level 2; gzip_types text/plain text/html text/javascript; //用來指定gzip壓縮比,1壓縮比最小,處理速度最快;9壓縮比最大,傳輸速度快,但處理速度最慢,使用默認即可
gzip_vary on; //選項可以讓前端的緩存服務器緩存經過gzip壓縮的頁面



常用優化(八)配置防盜鏈:在企業網站服務中,一般都要配置防盜鏈功能,以避免網站內容被非法盜用,造成經濟損失,也避免不必要的帶寬浪費。Nginx的防盜鏈功能非常強大,在默認情況下,只需要進行很簡單的配置,即可實現防盜鏈處理。
源主機www.bt.com
盜鏈主機www.test.com
nginx服務端:
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
...........
添加以下內容
location ~.(jpg|gif|swf)$ {
valid_referers none blocked
.bt.com bt.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.bt.com/error.png;
}
}

腳本註釋:
~*.(jpg|gif|swf)$:這段正則表達式表示匹配不區分大小寫,以.jpg或.gif或.swf結尾的文件。
valid_referers:設置信任的網站,可以正常使用圖片。
none:瀏覽器中referer爲空的情況,就是直接在瀏覽器訪問圖片。
blocked:瀏覽器中referer不爲空的情況,但是值被代理或防火牆刪除了,這些值不以http://或https://開頭。
後面的網址或者域名:referer中包含相關字符串的網址。
if語句:如果連接的來源域名不再valid_referers所列出的列表中,$invalid_referer爲1,則執行後面的操作,進行重寫或返回403頁面。



常用優化(九)基於授權的訪問控制
yum install httpd-tools.x86_64 -y
htpasswd -c /usr/local/nginx/passwd.db test //使用htppasswd生成用戶認證文件,用戶名是test
chown nginx passwd.db //將passwd.db屬主更改爲nginx
chmod 400 passwd.db //更改文件權限設爲只讀
vim nginx.conf

server {
listen 80;
server_name localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        auth_basic "secret";
        auth_basic_user_file /usr/local/nginx/passwd.db;
        root   html;
        index  index.html index.htm;
    }

腳本註釋:
server {
listen 80;
server_name localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        auth_basic "secret";                            //添加 添加認證配置
        auth_basic_user_file /usr/local/nginx/passwd.db;    //添加 指定添加用戶認證文件位置
        root   html;
        index  index.html index.htm;
    }

百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化
客戶端訪問nginx服務器:需身份驗證才能登錄
百曉生詳解nginx(上)功能概述,常用功能模塊的簡介,在centos7上的安裝及常用優化


基於客戶端的訪問控制
location / {
deny 192.168.252.132; //拒絕該IP地址訪問
allow all; //允許其餘所有IP客戶端正常訪問
以上就是nginx的功能概述,常用功能模塊的簡介,nginx在centos7上的安裝及常用優化。在下一部分將爲大家帶來nginx在實際生產環境中的應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章