亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Nginx-架構(gòu)篇

UsherChen / 3472人閱讀

摘要:架構(gòu)篇一常見(jiàn)問(wèn)題相同多個(gè)虛擬主機(jī)優(yōu)先級(jí)訪問(wèn)三個(gè)配置文件配置上述相同的三個(gè)虛擬主機(jī),會(huì)先訪問(wèn),訪問(wèn)的優(yōu)先級(jí)是按照服務(wù)器的讀取順序,即文件名的排序。

Nginx-架構(gòu)篇 一、Nginx常見(jiàn)問(wèn)題 1. 相同server_name多個(gè)虛擬主機(jī)優(yōu)先級(jí)訪問(wèn)
# 三個(gè)配置文件:

# testserver1:
server_name testserver1 www.rona1do.top;
root /opt/app/code1;

# testserver2:
server_name testserver2 www.rona1do.top;
root /opt/app/code2;

# testserver3:
server_name testserver3 www.rona1do.top;
root /opt/app/code3;
配置上述相同server_name的三個(gè)虛擬主機(jī),會(huì)先訪問(wèn)testserver1,訪問(wèn)的優(yōu)先級(jí)是按照服務(wù)器的讀取順序,即文件名的排序。
2. location匹配優(yōu)先級(jí)

=:進(jìn)行普通字符精確匹配,也就是完全匹配

^~:表示普通字符匹配,使用前綴匹配

~ ~ :表示執(zhí)行一個(gè)正則匹配(加不區(qū)分大小寫(xiě))

上述優(yōu)先級(jí)自上而下優(yōu)先級(jí)降低,前兩個(gè)匹配是精確匹配,匹配到以后就不再往下找,正則匹配匹配到相應(yīng)的字符串也會(huì)繼續(xù)往下尋找是否有更精確的匹配。
3. Nginx的try_files的使用
按順序檢查文件是否存在
# 先檢查對(duì)應(yīng)的url地址下的文件存不存在,如果不存在找/index.php,類(lèi)似于重定向
location / {
    try_file $uri /index.php;
}
4. Nginx的alias和root區(qū)別

root

location /request_path/image/ {
    root /local_path/image/;
}
# 請(qǐng)求:http://www.rona1do.top/request_path/image/cat.png
# 查詢(xún): /local_path/image/request_path_image/cat.png

alias

location /request_path/image/ {
    alias /local_path/image/;
}
# 請(qǐng)求:http://www.rona1do.top/request_path/image/cat.png
# 查詢(xún): /local_path/image/cat.png
5. 用什么樣的方法傳遞用戶的真實(shí)IP地址

在有代理的情況下,remote_addr獲取的是代理的ip,不是用戶的ip

x-forwarded-for容易被篡改

通用解決辦法: 可以跟第一級(jí)代理協(xié)商,設(shè)置頭信息x_real_ip記錄用戶的ip
set x_real_ip=$remote_addr
6. Nginx中常見(jiàn)錯(cuò)誤碼

413:request entity too large

用戶上傳文件限制:client_max_body_size

502:bad gateway

后端服務(wù)無(wú)響應(yīng)

504:gateway time-out

后端服務(wù)超時(shí)

二、Nginx性能優(yōu)化 1. 性能優(yōu)化考慮點(diǎn)

當(dāng)前系統(tǒng)結(jié)構(gòu)瓶頸

觀察指標(biāo)(top查看狀態(tài)、日志等)、壓力測(cè)試

了解業(yè)務(wù)模式

接口業(yè)務(wù)類(lèi)型,系統(tǒng)層次化結(jié)構(gòu)

性能與安全

配置防火墻太過(guò)于注重安全,會(huì)降低性能

2. ab接口壓力測(cè)試工具

安裝

yum install httpd-tools

使用

ab -n 2000 -c 2 http://127.0.0.1/

-n:總的請(qǐng)求數(shù)

-c:并發(fā)數(shù)

-k:是否開(kāi)啟長(zhǎng)連接

3. 系統(tǒng)與Nginx性能優(yōu)化

文件句柄

LinuxUnix一起皆文件,文件句柄就是一個(gè)索引

設(shè)置方式

- 系統(tǒng)全局性修改、用戶局部性修改、進(jìn)程局部性修改

系統(tǒng)全局性修改 和 用戶局部性修改:
配置文件:/etc/security/limits.conf
# root:root用戶
root soft nofile 65535
# hard 強(qiáng)制限制、soft 超過(guò)會(huì)發(fā)送提醒(郵件等),不限制
root hard nofile 65535
# *:所有用戶
*     soft nofile 65535
*     hard nofile 65535
進(jìn)程局部性修改
配置文件:/etc/nginx/nginx.conf
# 針對(duì)nginx進(jìn)程進(jìn)行設(shè)置
worker_rlimit_nofile 35535;
4. CPU的親和
CPU親和:將進(jìn)程/線程與cpu綁定,最直觀的好處就是提高了cpu cache的命中率,從而減少內(nèi)存訪問(wèn)損耗,提高程序的速度。

物理CPU數(shù)量:cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

CPU核心:cat /proc/cpuinfo | grep "cpu cores" | uniq

核心和進(jìn)程使用率:先按top,再按1

# /etc/nginx/nginx.conf

# nginx建議數(shù)量跟cpu核心數(shù)保持一致
worker_processes 2;
# 配置cpu親和
worker_cpu_affinity 0000000000000001 0000000000000010
# 與上一行等價(jià),自動(dòng)對(duì)應(yīng)(Nginx1.9版本以上)
worker_cpu_affinity auto

查看Nginx的cpu綁定情況:
ps -eo pid,args,psr | grep [n]ginx

5. Nginx通用配置優(yōu)化
# nginx服務(wù)使用nginx用戶(最好不要使用root用戶)
user nginx;
# cpu親和(最好跟核心數(shù)保持一致)
worker_processes 2;
worker_cpu_affinity auto;

# error的日志級(jí)別設(shè)置為warn
error_log  /var/log/nginx/error.log warn; 
pid        /var/run/nginx.pid;

# 文件句柄對(duì)于進(jìn)程間的限制(建議1w以上)
worker_rlimit_nofile 35535;

# 事件驅(qū)動(dòng)器
events {
    use epoll;
    # 限制每一個(gè)worker_processes進(jìn)程可以處理多少個(gè)連接
    worker_connections  10240;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    
    #字符集(服務(wù)端響應(yīng)發(fā)送的報(bào)文字符集)
    charset utf-8;
    
    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  /var/log/nginx/access.log  main;
    
    # 靜態(tài)資源的處理
    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    # gzip壓縮(對(duì)于IE6或以下版本對(duì)于gzip壓縮支持不是很好)
    gzip  on;
    # IE6或以下不進(jìn)行壓縮(兼容)
    gzip_disable "MSIE [1-6].";
    gzip_http_version 1.1;
    
    include /etc/nginx/conf.d/*.conf;
}
三、Nginx安全 1. 常見(jiàn)的惡意行為

爬蟲(chóng)行為和惡意抓取、資源盜用

基礎(chǔ)防盜鏈功能,不讓惡意用戶能輕易的爬取網(wǎng)站對(duì)外數(shù)據(jù)

secure_link_module,對(duì)數(shù)據(jù)安全性提高加密驗(yàn)證和實(shí)效性,適合如核心重要數(shù)據(jù)

acces_module,對(duì)后臺(tái)、部分用戶服務(wù)的數(shù)據(jù)提供IP防控

2. 常見(jiàn)的攻擊手段

后臺(tái)密碼撞庫(kù),通過(guò)猜測(cè)密碼字典不斷對(duì)后臺(tái)系統(tǒng)嘗試性登錄,獲取后臺(tái)登錄密碼

后臺(tái)登錄密碼復(fù)雜度

access_module,對(duì)后臺(tái)提供IP防控

預(yù)警機(jī)制(一個(gè)IP在一段時(shí)間內(nèi)重復(fù)不斷請(qǐng)求等)

3. 文件上傳漏洞
利用一些可以上傳的接口將惡意代碼植入到服務(wù)器中,再通過(guò)url去訪問(wèn)以執(zhí)行代碼

例:http://www.rona1do.top/upload...(Nginx將1.jpg作為php代碼執(zhí)行)

# 文件上傳漏洞解決辦法
location ^~ /upload {
    root /opt/app/images;
    if ($request_file ~* (.*).php){
        return 403;
    }
}
4. SQL注入
利用未過(guò)濾/未審核用戶輸入的攻擊方法,讓?xiě)?yīng)用運(yùn)行本不應(yīng)該運(yùn)行的SQL代碼

Nginx+LUA配置WAF防火墻防止SQL注入

ngx_lua_waf 下載地址

使用waf步驟:

git clone https://github.com/loveshell/ngx_lua_waf.git

cd ngx_lua_waf

mv ngx_lua_waf /etc/nginx/waf

vim /etc/nginx/waf/conf.lua,修改RulePath為對(duì)應(yīng)路徑(/etc/nginx/waf/wafconf)

vim /etc/nginx/waf/wafconf/post,加入一行,sors+,放sql注入的正則

集成waf:

# /etc/nginx/nginx.conf
lua_package_path "/etc/nginx/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /etc/nginx/waf/init.lua;
access_by_lua_file /etc/nginx/waf/waf.lua

reload Nginx

5. 復(fù)雜的訪問(wèn)攻擊中CC攻擊

waf/conf.lua配置文件中打開(kāi)防cc攻擊配置項(xiàng)

CCDeny="on"

CCrate="100/60" #每60秒100次請(qǐng)求

四、Nginx總結(jié)

定義Nginx在服務(wù)體系中的角色

靜態(tài)資源服務(wù)

代理服務(wù)

動(dòng)靜分離

設(shè)計(jì)評(píng)估

硬件

CPU、內(nèi)存、硬盤(pán)

系統(tǒng)

用戶權(quán)限、日志目錄存放

關(guān)聯(lián)服務(wù)

LVS、keepalive、syslog、Fastcgi

配置注意事項(xiàng)

合理配置

了解原理(HTTP、操作系統(tǒng)...)

關(guān)注日志

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/39907.html

相關(guān)文章

  • 深入 Nginx架構(gòu)

    摘要:請(qǐng)求的多階段異步處理多階段異步處理請(qǐng)求與事件驅(qū)動(dòng)架構(gòu)是密切相關(guān)的,也就是說(shuō),請(qǐng)求的多階段異步處理只能基于事件驅(qū)動(dòng)架構(gòu)實(shí)現(xiàn)。 前言 最近在讀 Nginx 相關(guān)的書(shū)籍,做一下讀書(shū)筆記。 Nginx 作為業(yè)界知名的高性能服務(wù)器,被廣泛的應(yīng)用。它的高性能正是由于其優(yōu)秀的架構(gòu)設(shè)計(jì),其架構(gòu)主要包括這幾點(diǎn):模塊化設(shè)計(jì)、事件驅(qū)動(dòng)架構(gòu)、請(qǐng)求的多階段異步處理、管理進(jìn)程與多工作進(jìn)程設(shè)計(jì)、內(nèi)存池的設(shè)計(jì),以下內(nèi)...

    linkin 評(píng)論0 收藏0
  • 深入 Nginx架構(gòu)

    摘要:請(qǐng)求的多階段異步處理多階段異步處理請(qǐng)求與事件驅(qū)動(dòng)架構(gòu)是密切相關(guān)的,也就是說(shuō),請(qǐng)求的多階段異步處理只能基于事件驅(qū)動(dòng)架構(gòu)實(shí)現(xiàn)。 前言 最近在讀 Nginx 相關(guān)的書(shū)籍,做一下讀書(shū)筆記。 Nginx 作為業(yè)界知名的高性能服務(wù)器,被廣泛的應(yīng)用。它的高性能正是由于其優(yōu)秀的架構(gòu)設(shè)計(jì),其架構(gòu)主要包括這幾點(diǎn):模塊化設(shè)計(jì)、事件驅(qū)動(dòng)架構(gòu)、請(qǐng)求的多階段異步處理、管理進(jìn)程與多工作進(jìn)程設(shè)計(jì)、內(nèi)存池的設(shè)計(jì),以下內(nèi)...

    zhangrxiang 評(píng)論0 收藏0
  • Nginx-架構(gòu)

    摘要:架構(gòu)篇一常見(jiàn)問(wèn)題相同多個(gè)虛擬主機(jī)優(yōu)先級(jí)訪問(wèn)三個(gè)配置文件配置上述相同的三個(gè)虛擬主機(jī),會(huì)先訪問(wèn),訪問(wèn)的優(yōu)先級(jí)是按照服務(wù)器的讀取順序,即文件名的排序。 Nginx-架構(gòu)篇 一、Nginx常見(jiàn)問(wèn)題 1. 相同server_name多個(gè)虛擬主機(jī)優(yōu)先級(jí)訪問(wèn) # 三個(gè)配置文件: # testserver1: server_name testserver1 www.rona1do.top; root...

    jubincn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<