真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

nginx是什么-創(chuàng)新互聯(lián)

1)Nginx服務(wù)概述

Nginx由俄羅斯的lgor Sysoev開發(fā),專為性能優(yōu)化而開發(fā),其最知名的優(yōu)點(diǎn)就是它的穩(wěn)定性和低系統(tǒng)資源消耗、以及對(duì)HTTP并發(fā)連接的高處立能力(單臺(tái)物理服務(wù)器可支持30000~50000個(gè)并發(fā)請(qǐng)求)。正因?yàn)槿绱耍罅刻峁┥缃痪W(wǎng)絡(luò)、新聞資訊、電子商務(wù)及虛擬主機(jī)等服務(wù)的企業(yè)紛紛選擇Nginx來提供Web服務(wù)。

網(wǎng)站是企業(yè)的互聯(lián)網(wǎng)名片,是開展互聯(lián)網(wǎng)業(yè)務(wù)基礎(chǔ)平臺(tái)。在目標(biāo)明確的基礎(chǔ)上,創(chuàng)新互聯(lián)憑借團(tuán)隊(duì)豐富的設(shè)計(jì)經(jīng)驗(yàn)完成網(wǎng)站的構(gòu)思創(chuàng)意即總體設(shè)計(jì)方案,自成立以來,一直致力于為企業(yè)提供從域名與空間、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站設(shè)計(jì)、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。

搭建Web服務(wù)如果是為了解析靜態(tài)網(wǎng)頁、動(dòng)態(tài)網(wǎng)頁等、不需要太多的功能,那么Nginx絕對(duì)是選。

2)安裝Nginx

本次案例采用yum的方式進(jìn)行安裝,不過不使用epel源,因?yàn)檫@個(gè)nginx版本更新的太快了,導(dǎo)致epel根本趕不上Nginx的更新速度,所以我們采用官方的yum的yum源進(jìn)行配置!

[root@nginx ~]# yum install -y gcc gcc- c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree
#由于是最小化安裝的系統(tǒng),所以安裝一些必要的軟件
[root@nginx ~]# vim /etc/yum.repos.d/nginx.repo
#配置nginx的yum源,Nginx官方也有相應(yīng)的配置信息
[nginx]
name=nginx_repo 
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
#該yum源默認(rèn)情況下安裝的是nginx最新的、穩(wěn)定版
[root@nginx ~]# yum -y install nginx        #安裝nginx
[root@nginx ~]# nginx -v       #查看nginx的版本
nginx version: nginx/1.16.1

3)Nginx安裝目錄

為了更清晰的了解 Nginx 軟件的全貌,有必要介紹下 Nginx 安裝后整體的?錄結(jié)構(gòu)及?件功能。

[root@nginx ~]# rpm -ql nginx
#查看與nginx相關(guān)的目錄

下圖對(duì)nginx的安裝目錄進(jìn)行詳細(xì)的解釋!
nginx是什么

4)Nginx的編譯參數(shù)

[root@nginx ~]# nginx -V
#查看nginx的編譯參數(shù)

下圖展示了Nginx編譯參數(shù)選項(xiàng)以及作用!
nginx是什么

5)Nginx常用模塊

Nginx模塊分為 Nginx官?模塊以及Nginx第三?模塊!如圖表:

Nginx編譯選項(xiàng)模塊作用
ngx_http_core_module包含?些核?的http參數(shù)配置,對(duì)應(yīng)Nginx的配置區(qū)塊部分
ngx_http_access_module訪問控制模塊,?來控制?站?戶對(duì)Nginx的訪問
ngx_http_gzip_module壓縮模塊,對(duì)Nginx返回的數(shù)據(jù)壓縮,屬于性能優(yōu)化模塊
ngx_http_fastcgi_modulefastci模塊,和動(dòng)態(tài)應(yīng)?相關(guān)的模塊,例如PHP
ngx_http_proxy_moduleproxy代理模塊
ngx_http_upstream_module負(fù)載均衡模塊,可以實(shí)現(xiàn)?站的負(fù)載均衡功能及節(jié)點(diǎn)的健康檢查
ngx_http_rewrite_moduleURL地址重寫模塊
ngx_http_limit_conn_module限制?戶并發(fā)連接數(shù)及請(qǐng)求數(shù)模塊
ngx_http_limit_req_module限制Nginx request processing rate根據(jù)定義的key
ngx_http_log_module訪問?志模塊,以指定的格式記錄Nginx客戶訪問?志等信息
ngx_http_auth_basic_moduleWeb認(rèn)證模塊,設(shè)置Web?戶通過賬號(hào)密碼訪問Nginx
nginx_http_ssl_modulessl模塊,?于加密的http連接,如https

6)Nginx內(nèi)置變量

$uri:當(dāng)前請(qǐng)求的URI,不帶參數(shù);
$request_uri:請(qǐng)求的URI,帶完整參數(shù);
$host:http請(qǐng)求報(bào)文中host首部,如果沒有則以處理此請(qǐng)求的虛擬主機(jī)名稱名代替;
$hostname:nginx服務(wù)運(yùn)行在主機(jī)的主機(jī)名;
$remote_addr:客戶端IP;
$remote_port:客戶端端口;
$remote_user:使用用戶認(rèn)證時(shí)客戶端用戶輸入的用戶名;
$request_filename:用戶請(qǐng)求中的URI經(jīng)過本地root或alias轉(zhuǎn)換后映射的本地文件路徑;
$request_method:請(qǐng)求方法:GET、POST、PUT
$server_addr:服務(wù)器地址;
$server_name:服務(wù)器名稱;
$server_port:服務(wù)器端口;
$server_protocol:服務(wù)器向客戶端發(fā)送響應(yīng)時(shí)的協(xié)議,如http/1.1 http/1.0;
$scheme:在請(qǐng)求中使用scheme,作用是截取http://xxxx.com中的http;
$http_HEADER:匹配請(qǐng)求報(bào)文中指定的HEADER;
$http_host:匹配請(qǐng)求報(bào)文中的host首部;
$document_root:當(dāng)前請(qǐng)求映射到的root配置;
$http_user_agent:從http請(qǐng)求的頭部信息中,獲取客戶端的訪問設(shè)備;
$status:響應(yīng)報(bào)文返回的狀態(tài)碼;
$body_bytes_sent:從服務(wù)端響應(yīng)給客戶端body信息大?。?$http_referer:http上一級(jí)頁面,防盜鏈、用戶行為;
$http_x_forwarded_for:http請(qǐng)求攜帶的http信息;
$time_local:nginx的時(shí)間;

7)Nginx的配置文件

Nginx主配置?件 /etc/nginx/nginx.conf 是?個(gè)純?本類型的?件,整個(gè)配置?件是以區(qū)塊的形式組織的。?般,每個(gè)區(qū)塊以?對(duì)?括號(hào) {} 來表示開始與結(jié)束。

//nginx默認(rèn)配置語法
user                                 //設(shè)置nginx服務(wù)的系統(tǒng)使??戶
worker_processes         //?作進(jìn)程, 配置和CPU個(gè)數(shù)保持?致
error_log                      //錯(cuò)誤?志, 后?接?的是路徑
pid                                 //Nginx服務(wù)啟動(dòng)時(shí)的pid
//events事件模塊
events  {        //事件模塊                        
         worker_connections    //每個(gè)worker進(jìn)程?持的最?連接數(shù)
         use                                 //內(nèi)核模型,select,poll,epoll
}
//?虛擬主機(jī)的配置或公共配置定義在http{}段內(nèi), server{}段外
http   {
...       
         //必須使?虛擬機(jī)配置站點(diǎn),  每個(gè)虛擬機(jī)使??個(gè)server{}段
         'server'   {
                 listen  80;       //監(jiān)聽端?, 默認(rèn)80
                 server_name   localhost;  //提供服務(wù)的域名或主機(jī)名

                 //控制?站訪問路徑
                 'location'  /  {
                         root       /usr/share/nginx/html;      //存放?站路徑
                         index    index.html  index.htm;        //默認(rèn)訪問???件
                 }

                 //指定錯(cuò)誤代碼,  統(tǒng)?定義錯(cuò)誤??,  錯(cuò)誤代碼重定向到新的Locaiton
                 error_page      500 502 503 504   /50x.html;
                 'location'  =  /50x.html  {
                         root       html;
                 }
         }
         ...
         //第?個(gè)虛擬主機(jī)配置
         'server'   {
         ...
         }
}

8)Nginx日志配置

//配置語法: 包括: error.log  access.log
Syntax: log_format  name   [escape=default|json]  string  ...;
Default:         log_format  combined   "...";
Context:         http
//Nginx默認(rèn)配置
   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
            '$status $body_bytes_sent "$http_referer" '
            '"$http_user_agent" "$http_x_forwarded_for"';

//Nginx?志變量
$remote_addr         //表示客戶端地址
$remote_user         //http客戶端請(qǐng)求nginx認(rèn)證?戶名
$time_local         //Nginx的時(shí)間
$request                 //Request請(qǐng)求?,  GET等?法、http協(xié)議版本
$status                 //respoence返回狀態(tài)碼
$body_bytes_sent         //從服務(wù)端響應(yīng)給客戶端body信息??
$http_referer              //http上?級(jí)??,   防盜鏈、?戶?為分析
$http_user_agent         //http頭部信息, 客戶端訪問設(shè)備
$http_x_forwarded_for      //http請(qǐng)求攜帶的http信息

9)Nginx狀態(tài)監(jiān)控

--with-http_stub_status_module 記錄 Nginx 客戶端基本訪問狀態(tài)信息!
具體配置如下:

   location   /mystatus  {
         stub_status on;
         access_log  off;
}
//Nginx_status概述
Active  connections:2        //Nginx當(dāng)前活躍連接數(shù)
server  accepts handled requests
16          16          19
server表示Nginx處理接收握?總次數(shù)。
accepts表示Nginx處理接收總連接數(shù)。
請(qǐng)求丟失數(shù)=(握?數(shù)-連接數(shù))可以看出,本次狀態(tài)顯示沒有丟失請(qǐng)求。
handled requests,表示總共處理了19次請(qǐng)求。
Reading         Nginx讀取數(shù)據(jù)
Writing         Nginx寫的情況
Waiting       Nginx開啟keep-alive?連接情況下,   既沒有讀也沒有寫,  建?連接情況

10)Nginx下載站點(diǎn)

Nginx默認(rèn)是不允許列出整個(gè)目錄瀏覽下載的!

Syntax: autoindex  on  |  off;
Default:         
autoindex  off;
Context:         http,  server, location
//autoindex常?參數(shù)
autoindex_exact_size   off;
默認(rèn)為on, 顯示出?件的確切??,單位是bytes。
修改為off,顯示出?件的?概??,單位是kB或者M(jìn)B或者GB。
autoindex_localtime on;
默認(rèn)為off,顯示的?件時(shí)間為GMT時(shí)間。
修改為on, 顯示的?件時(shí)間為?件的服務(wù)器時(shí)間。
charset utf-8,gbk;
默認(rèn)中??錄亂碼,添加上解決亂碼。

配置目錄瀏覽功能

//開啟?錄瀏覽
     location /down {
               root   /usr/share/nginx/html;
               autoindex    on;
               autoindex_localtime   on;
               autoindex_exact_size   off;
     }

11)Nginx訪問限制

連接頻率限制:limit_conn_module
請(qǐng)求頻率限制:limit_req_module

http協(xié)議的連接與請(qǐng)求
HTTP是建?在TCP, 在完成HTTP請(qǐng)求需要先建?TCP三次握?(稱為TCP連接),在連接的基礎(chǔ)上在HTTP請(qǐng)求。
nginx是什么
HTTP協(xié)議的連接與請(qǐng)求

HTTP協(xié)議版本連接關(guān)系
HTTP1.0TCP不能復(fù)用
HTTP1.1順序性TCP復(fù)用
HTTP2.0多路復(fù)用TCP復(fù)用
HTTP請(qǐng)求建立在一次TCP連接基礎(chǔ)上;
一次TCP請(qǐng)求至少產(chǎn)生一次HTTP請(qǐng)求;
1)Nginx連接限制
//Nginx連接限制語法
Syntax:   limit_conn_zone key zone=name:size;
Default:   —
Context:   http
Syntax: limit_conn  zone   number;
Default:   —
Context:   http,  server, location
//具體配置如下:
http   {
//http段配置連接限制,  同?時(shí)刻只允許?個(gè)客戶端IP連接
limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
         ...
         server  {
         ...   
                 location   /  {
                 //同?時(shí)刻只允許?個(gè)客戶端IP連接
                 limit_conn  conn_zone  1;
                 }
//壓?測(cè)試
yum install -y  httpd-tools
ab  -n  50  -c  20    http://127.0.0.1/index.html
2)Nginx請(qǐng)求限制
//Nginx請(qǐng)求限制語法
Syntax:   limit_req_zone  key zone=name:size  rate=rate;
Default:   —
Context:   http
Syntax: limit_conn  zone   number  [burst=number]  [nodelay];
Default:   —
Context:   http,  server, location
//具體配置如下:
http   {
//http段配置請(qǐng)求限制,  rate限制速率,限制?秒鐘最多?個(gè)IP請(qǐng)求
limit_req_zone  $binary_remote_addr zone=req_zone:10m  rate=1r/s;
         ...
         server  {
         ...   
                 location   /  {
                 //1r/s只接收?個(gè)請(qǐng)求,其余請(qǐng)求拒絕處理并返回錯(cuò)誤碼給客戶端
                         limit_req  zone=req_zone;
                 //請(qǐng)求超過1r/s,剩下的將被延遲處理,請(qǐng)求數(shù)超過burst定義的數(shù)量,  多余的請(qǐng)求返回503
                         #limit_req  zone=req_zone  burst=3 nodelay;
                 }
//壓?測(cè)試
yum install -y  httpd-tools
ab  -n  50  -c  20    http://127.0.0.1/index.html

連接請(qǐng)求沒有請(qǐng)求限制有效?
1)多個(gè)請(qǐng)求可以建?在?次的TCP連接之上, 那么我們對(duì)請(qǐng)求的精度限制,當(dāng)然?對(duì)?個(gè)連接的限制會(huì)更加的有效;
2)因?yàn)橥?時(shí)刻只允許?個(gè)連接請(qǐng)求進(jìn)?;
3)但是同?時(shí)刻多個(gè)請(qǐng)求可以通過?個(gè)連接進(jìn)?;
4)所以請(qǐng)求限制才是?較優(yōu)的解決?案;

12)Nginx訪問控制

基于IP的訪問控制:http_access_module
基于?戶登陸認(rèn)證:http_auth_basic_module
1)基于IP的訪問控制
//允許配置語法
Syntax: allow  address |  CIDR   |  unix:  |  all;
Default:     -
Context:   http,  server, location,  limit_except
//拒絕配置語法
Syntax: deny   address |  CIDR   |  unix:  |  all;
Default:     -
Context:   http,  server, location,  limit_except
//配置拒絕某?個(gè)IP,   其他全部允許
location   ~  ^/1.html   {
         root   /usr/share/nginx/html;
         index  index.html;
         deny   192.168.10.1;           #注意檢查順序是從上往下
         allow  all;
}
//只允許某?個(gè)?段訪問,其它全部拒絕
location   /  {
         root       html;
         index    index.php  index.html  index.htm;
         allow      192.168.10.0/24;
         deny         all;
}

http_access_module局限性:
nginx是什么
下圖是使?http_x_forwarded_for記錄真實(shí)客戶端IP地址以及代理服務(wù)器IP
nginx是什么
解決方案:
1)采?HTTP頭信息控制訪問, 代理以及web服務(wù)開啟 http_x_forwarded_for;
2)結(jié)合geo模塊;
3)通過HTTP?動(dòng)以變量傳遞;

2)基于用戶登錄認(rèn)證
//配置語法
Syntax: auth_basic  string| off;
Default:   auth_basic  off;
Context: http,  server, location,  limit_except
//?戶密碼記錄配置?件
Syntax: auth_basic_user_file   file;
Default:   -
Context:   http,  server, location,  limit_except
//需要安裝依賴組件
[root@nginx ~]# yum install httpd-tools
[root@nginx ~]# htpasswd   -c  /etc/nginx/auth_conf   zhangsan   #新創(chuàng)建的用戶
[root@nginx ~]# htpasswd   -b  /etc/nginx/auth_conf   lisi 123456   #增加用戶需使用-b選項(xiàng)并指定密碼
//可在http,server,location下添加如下信息
auth_basic  "請(qǐng)輸入用戶名及密碼!";
auth_basic_user_file   /etc/nginx/auth_conf;

用戶認(rèn)證局限性:
1)用戶信息依賴文件方式;
2)用戶管理文件過多,無法聯(lián)動(dòng);
3)操作管理機(jī)械,效率低下;

解決方法:
1)Nginx結(jié)合LUA實(shí)現(xiàn)高效認(rèn)證;
2)Nginx結(jié)合nginx-auth-ldap模塊;

13)Nginx虛擬主機(jī)

所謂虛擬主機(jī),在web服務(wù)器?是?個(gè)獨(dú)?的?站站點(diǎn),這個(gè)站點(diǎn)對(duì)應(yīng)獨(dú)?的域名(也可能是IP或端?),具有獨(dú)?的程序及資源?錄,可以獨(dú)?地對(duì)外提供服務(wù)供?戶訪問。

1)配置基于域名的虛擬主機(jī)
1.創(chuàng)建web站點(diǎn)?錄
[root@nginx conf]#  mkdir  /soft/code/{www,bbs}
[root@nginx conf]#  echo   "www"  >  /soft/code/www/index.html
[root@nginx conf]#  echo   "bbs"  >  /soft/code/bbs/index.html
2.配置虛擬主機(jī)
[root@nginx conf]#  cat conf.d/{www,bbs}.conf
server  {
         listen  80;
         server_name   www.nginx.com;
         root   /soft/code/www;
         ...
}
server  {
         ...
         listen 80;
         server_name   bbs.nginx.com;
         root   /soft/code/bbs;
}
2)配置不同端?訪問不同虛擬主機(jī)
//僅修改listen監(jiān)聽端?即可,  但不能和系統(tǒng)端?發(fā)?沖突
server  {
         ...
         listen 8001;
         ...
}
server  {
         ...
         listen  8002;
         ...
}
3)配置虛擬主機(jī)別名

所謂虛擬主機(jī)別名,就是虛擬主機(jī)設(shè)置除了主域名以外的?個(gè)域名,實(shí)現(xiàn)?戶訪問的多個(gè)域名對(duì)應(yīng)同?個(gè)虛擬主機(jī)?站的功能。
以www.nginx.com 域名的虛擬主機(jī)為例:為其增加?個(gè)別名nginx.com時(shí),出現(xiàn)?站內(nèi)容和訪問www.nginxi.com 是?樣的,具體配置如下:

//默認(rèn)配置
[root@nginx ~]# vim /etc/nginx/nginx.conf
server  {
         listen 80;
         server_name www.nginx.com;
}
//別名配置
[root@LNMP  ~]# vim /etc/nginx/nginx.conf
server  {
         listen  80;
         server_name   www.nginx.com  nginx.com;
         ...
}
//使?Linux下curl測(cè)試結(jié)果
[root@LNMP  conf]#  curl   nginx.com
www.nginx.com
[root@LNMP  conf]#  curl   www.nginx.com
www.nginx.com
//訪問帶www和不帶www是?樣的, 除了別名實(shí)現(xiàn)也可以通過rewrite實(shí)現(xiàn)

————————本文到此結(jié)束,感謝閱讀————————————

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前文章:nginx是什么-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://weahome.cn/article/epicj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部