Nginx基礎篇--Linux下操作
基礎篇
前言
其實現在類似於Nginx的中介軟體還有微軟的IIS、httpd和GWS,為什麼現在都在使用Nginx呢?
一、IO的多路複用epoll
什麼是epoll?
多路I/O操作都能在一個執行緒內併發交替的順序完成, 這就是I/O多路複用, 這裡的複用是指同一個執行緒。
IO多路複用的實現方式select 、poll、epoll
2. select的缺點
1)有連線限制 1024
4. epoll模型
1) 每當FD就緒時候, 採用系統的回撥函式之間將fd放圖,效率更高
2)沒有最大連線數量限制
二、輕量級
三、CPU親和(affininty)
1.為什麼需要CPU親和:
減少CPU切換的損耗, 把CPU核心和Nginx工作程式繫結的方式, 把每個worker程式固定在一個cpu上進行, 減少切換cpu的cache miss, 獲取更好的效能
四、sendfile
快速安裝
安裝yum工具: yum -y install gcc gcc-c++ antoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim
新增nginx的yum源:
vim /etc/yum.repos.d/nginx,repo
http://nginx.org/en/linux_packages.html#RHEL-CentOS
yum -y install nginx
配置語法
安裝目錄:
/ect/logratate.d/nginx 屬於配置檔案 #服務日誌的切割
/etc/nginx/nginx.conf 配置檔案 #主要配置檔案
/etc/nginx/conf.d/default.conf 配置檔案 #預設配置檔案
配置檔案 cgi配置相關, fastcgi 配置:
/etc/nginx/fastcgi_params
/etc/nginx/uwsgi_params
/etc/nginx/scgi__params
/etc/nginx/mime.types 設定http協議的Content-Type副檔名對應的關係
/usr/lib64/nginx/modules #nginx的模組
/usr/nginx/modules #nginx的模組
/var/cache/nginx 屬於目錄型別 #Nginx的快取目錄
/var/log/nginx 屬於目錄型別 #Nginx的日誌目錄
2、nginx的配置資訊
安裝編譯檔案:
nginx的臨時資訊:
設定nginx的程式啟動的使用者和使用者組
–user=nginx
–group=nginx
3、Nginx預設配置語 法
worker_connections : 最大連線為65355 一般是10000左右
use :
預設模組
http_stub_status_module : 展示Nginx客戶端的狀態
配置語法:
Syntax: sub_status
Default:–
Context: server, location 配置的位置
配置完成後驗證: nginx -tc /etc/nginx/nginx.conf
配置完成後重新載入配置資訊: nginx -s reload -c /etc/nginx/nginx.conf
http_random_index_module : 目錄中選擇一個隨機主頁
配置語法:
Syntax: random_index on|off
Default: random_index off
Context: location 配置的位置
注意: 隨機選擇的時候不會選擇隱藏的檔案
http_sub_module : Http內容替換
Syntax: sub_filter string(被替換內容) replacement(替換內容)
Default: –
Context: http,server, location 配置的位置
Syntax: sub_filter_last_modified on|off
Default: sub_filter_last_modified off
Context: http,server, location 配置的位置
Syntax: sub_filter_once on|off 是不是匹配第一個字串
Default: sub_filter_once off
Context: http,server, location 配置的位置
Nginx的log
型別 : error.log access.log
日誌的配置方法:
1、通過log_format進行語法格式配置, 這個屬於nginx特有的日誌格式, 教程入口: https://www.cnblogs.com/kaishirenshi/p/10551942.html
nginx內建變數 :
其中main代表的變數, 一個語法格式的變數
2.語法格式檢查
nginx -t -c confPath
3.重新載入配置
nginx -s reload -c confPath
訪問限制
Http的請求和連結
連線頻率限制 - limit_conn_module
Syntax: limit_conn_zone key zone=name:size; 申請空間的大小
Default: –
Context: http 配置的位置
請求頻率限制 - limit_req_module
Syntax: limit_conn zone number; 併發的限制
Default: –
Context: http,server, location 配置的位置
請求限制於連線限制
Syntax: limit_req_zone key zone=name:size rate=rate; 申請空間的大小
Default: –
Context: http 配置的位置
Syntax: limit_req zone=name [burst=number] [nodelay]; 併發的限制
Default: –
Context: http,server, location 配置的位置
示例:
access模組語法配置
基於IP的 http_access_module
Syntax: allow address | CIDR |unix:|all; 申請空間的大小
Default: –
Context: http ,server, location, limit_except 配置的位置
Syntax: allow address | CIDR |unix:|all; 申請空間的大小
Default: –
Context: http ,server, location, limit_except 配置的位置
http_access_module的侷限性:
缺陷 : 通過代理的方式會無法進行限制
解決辦法:
方法一、http_x_forwarded_for
在x_forwarded_for中可以看到第一個訪問, 這樣做訪問控制是精準的, Http_x_forwarded_for = Client Ip, Proxy(1) IP
方法二、結合geo模組
方法三、通過Http自定義變數傳遞
請求限制侷限性
基本安全驗證
auth模組配置語法
基於使用者的信任登陸模組 http_auth_basic_module
效率低下, 一般很少使用,
方法一、Nginx結合LUA實現高效驗證
方法二、Nginx和LDAP打通, 利用nginx-auth-ldap模組
安全認證侷限性
相關文章
- Linux下Nginx基礎應用LinuxNginx
- Nginx-基礎篇Nginx
- Kali Linux基礎操作學習篇——mkdir命令Linux
- Linux下MySQL基礎及操作語法LinuxMySql
- linux基礎操作Linux
- RN API基礎操作篇API
- 常用基礎Linux操作命令總結與hadoop基礎操作命令LinuxHadoop
- linux常用基礎命令操作收集Linux
- Linux基礎命令---IP路由操作Linux路由
- 小白入門使用Nginx基礎的常用操作Nginx
- Rhino基礎操作3 - 出圖篇
- KeyShot基礎操作5 - 動畫篇動畫
- 《MySQL 基礎篇》四:查詢操作MySql
- Nginx入門到實戰(1)基礎篇Nginx
- Linux——基礎命令用法(下)Linux
- mongodb基礎整理篇————常規操作[二]MongoDB
- nginx基礎篇之虛擬主機實戰Nginx
- MongoDB資料庫操作詳解:基礎篇MongoDB資料庫
- Linux基礎學習系列——Linux檔案目錄操作命令Linux
- Nginx-基礎Nginx
- 002 Nginx 基礎Nginx
- Linux入門學習(1基礎操作命令)Linux
- 走進Linux伺服器之一:Linux操作基礎——Linux基本檔案操作(讀寫)Linux伺服器
- Linux shell基礎知識_8(下)Linux
- Linux基礎命令---wget下載工具Linuxwget
- Java-Nginx基礎JavaNginx
- Nginx基礎筆記Nginx筆記
- Nginx 基礎入門Nginx
- Nginx基礎知識Nginx
- Linux 環境下 PHP 專案基礎執行環境搭建(PHP 7.3.6 + MySQL 8.0.16 + Nginx)LinuxPHPMySqlNginx
- linux下nginx安裝LinuxNginx
- Linux下安裝nginxLinuxNginx
- Django專案在Linux下基礎配置DjangoLinux
- 寫給後端的Nginx初級入門教程:基礎篇後端Nginx
- NGINX 入門到企業級應用實踐-基礎篇Nginx
- 前端linux基礎,這一篇就夠了前端Linux
- Re:從零開始的Linux之路(基礎篇)Linux
- Redis基礎操作Redis