Nginx基礎篇--Linux下操作

qq_37112807發表於2020-12-14

前言

其實現在類似於Nginx的中介軟體還有微軟的IIS、httpd和GWS,為什麼現在都在使用Nginx呢?

一、IO的多路複用epoll 
什麼是epoll?
多路I/O操作都能在一個執行緒內併發交替的順序完成, 這就是I/O多路複用, 這裡的複用是指同一個執行緒。
IO多路複用的實現方式select 、poll、epoll

Alt
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模組

安全認證侷限性

相關文章