小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Nginx學(xué)習(xí)

 Coder編程 2021-05-15

什么是nginx?

e7cd7b899e510fb30f2466c67079df95d143ad4ba602

Nginx是一款輕量級(jí)的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類(lèi)型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好

nginx安裝

1、手動(dòng)安裝

#安裝 nginx 
$ yum install nginx

#啟動(dòng)nginx
$ systemctl start nginx

#加入開(kāi)機(jī)啟動(dòng)
$ systmctl enable nginx

#查看nginx的狀態(tài)
$ systemctl status nginx

#檢查 nginx 文件語(yǔ)法是否此錯(cuò)誤
$ nginx -t

# 重載 nginx 配置
$ nginx -s reload

2、docker安裝

# 拉取鏡像
$ docker pull nginx

# 運(yùn)行docker
$  docker run  -p 80:80 --name docker-nginx -d nginx

# 將容器中的文件復(fù)制到一個(gè)文件夾中
$ docker cp docker-nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf

# 刪除上一個(gè)運(yùn)行的 nginx 容器
$ docker rm -f docker -nginx

# 重新啟動(dòng)一個(gè)容器 將數(shù)據(jù)卷映射到剛才創(chuàng)建的目錄
$ docker run  -p 80:80 --name docker-nginx1 -d nginx 
        -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  
        -v /usr/local/nginx/conf.d:/etc/nginx/conf.d
        -v /usr/local/nginx/log:/var/log/nginx

3、docker-compose安裝

version: '3.1'
services:
  nginx:
    image: nginx
    restart: always
    container_name: nginx
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 80:80
      - 443:443
    volumes:
      - /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /usr/local/nginx/log:/var/log/nginx

nginx重定向

注:需要先將服務(wù)器的ip解析到域名上

將域名重定向到當(dāng)前的地址和端口

server {
    # 監(jiān)聽(tīng)的端口
    listen 80;
    # 域名
    server_name www.xxx.xxx;
    rewrite ^(.*)$ https://$host$1 permanent;
    client_max_body_size 1024m;
    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 需要代理的 地址和端口
        proxy_pass http://127.0.0.1:8080/;
    }
}

配置https

server {
    # 監(jiān)聽(tīng)的端口 并開(kāi)啟ssl
    listen 443 ssl; 
    # 域名
    server_name www.xxx.xxx;
    # 證書(shū) 不同網(wǎng)站申請(qǐng)的證書(shū)不同 均可以 只是后綴區(qū)分
    ssl_certificate cert/xxx.crt;
    ssl_certificate_key cert/xxx.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    #ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://127.0.0.1:8080/;
        #add_header Content-Security-Policy upgrade-insecure-requests;
    }
}

nginx搭建文件服務(wù)器

location /images/ {
    root   /root/;
    autoindex on;
}

root 配置的意思是,會(huì)在root配置的目錄后跟上URL,組成對(duì)應(yīng)的文件路徑。

意思就是我們?cè)跒g覽器輸入的這個(gè)地址實(shí)際訪問(wèn)的是

root/images

會(huì)把我們的location后面的/images拼到實(shí)際訪問(wèn)的路徑之后

root/images/images

1、處理方法是把root后面的images去掉

2、root替換成alias

location /images/ {
    alias   /root/images/;
    autoindex on;
}

nginx頁(yè)面緩存

proxy_cache_path

格式:proxy_cache_path path [levels=numbers] keys_zone=zone_name:zone_size[inactive=time] [max_size=size]

說(shuō)明:

path -緩存文件存放的位置

levels-緩存目錄結(jié)構(gòu),可以是1、2、3位數(shù)字作為目錄,最多是3位數(shù)字如:1,1:2

keys_zone -指定緩存池名字及大小,每個(gè)定義緩存路徑必須不同

inactive -設(shè)置每個(gè)緩存區(qū)緩存文件的有效時(shí)長(zhǎng),超過(guò)該時(shí)長(zhǎng)沒(méi)被訪問(wèn)的緩存被刪除

max_size -設(shè)置不活動(dòng)的緩存大小,不活動(dòng)的緩存超過(guò)該大小后被刪除

$upstream_cache_status包含以下幾種狀態(tài):

·MISS 未命中,請(qǐng)求被傳送到后端
·HIT 緩存命中
·EXPIRED 緩存已經(jīng)過(guò)期請(qǐng)求被傳送到后端
·UPDATING 正在更新緩存,將使用舊的應(yīng)答
·STALE 后端將得到過(guò)期的應(yīng)答
配置
# 開(kāi)啟gzip
gzip  on;
# 啟用gzip壓縮的最小文件,小于設(shè)置值的文件將不會(huì)壓縮
gzip_min_length 1k;
# gzip 壓縮級(jí)別,1-10,數(shù)字越大壓縮的越好,也越占用CPU時(shí)間。一般設(shè)置1和2
gzip_comp_level 2;

proxy_cache_path /root/cache/ levels=1:2 keys_zone=tmpcache:100m max_size=10g;

server {
    listen       80;
    server_name  localhost;
    charset utf-8;
    # 緩存的服務(wù)地址
    add_header X-Via $server_addr;
    # 緩存的狀態(tài) 用于區(qū)分訪問(wèn)的資源是緩存的還是加載的
    add_header X-Cache $upstream_cache_status;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        # 緩存名稱(chēng)
        proxy_cache tmpcache;
        # 需要緩存的數(shù)據(jù)狀態(tài) 需要緩存保留的時(shí)間
        proxy_cache_valid any 1h;
        # 代理地址
        proxy_pass http://127.0.0.1:8080;
    }

nginx訪問(wèn)控制

deny指令
allow
語(yǔ)法:    allow address | CIDR | unix: | all;
默認(rèn)值:    —
配置段:    http, server, location, limit_except

允許某個(gè)ip或者一個(gè)ip段訪問(wèn).如果指定unix:,那將允許socket的訪問(wèn).
注意:unix在1.5.1中新加入的功能,如果你的版本比這個(gè)低,請(qǐng)不要使用這個(gè)方法。

deny
語(yǔ)法:    deny address | CIDR | unix: | all;
默認(rèn)值:    —
配置段:    http, server, location, limit_except

Unix是20世紀(jì)70年代初出現(xiàn)的一個(gè)操作系統(tǒng),除了作為網(wǎng)絡(luò)操作系統(tǒng)之外,還可以作為單機(jī)操作系統(tǒng)使用。

CIDR一般指無(wú)類(lèi)別域間路由。無(wú)類(lèi)別域間路由(Classless Inter-Domain Routing、CIDR)是一個(gè)用于給用戶分配IP地址以及在互聯(lián)網(wǎng)上有效地路由IP數(shù)據(jù)包的對(duì)IP地址進(jìn)行歸類(lèi)的方法。

nginx.conf

# 添加nginx掃描的文件
include blockips.conf;

blockips.conf

# 禁用訪問(wèn)
deny 192.168.1.101;
# 允許訪問(wèn)
allow 192.168.1.102;

nginx負(fù)載均衡

1、默認(rèn)分配
upstream ipaddr { 
      server 192.168.1.101:8080; 
      server 192.168.1.102:8081; 
}

location / { 
    root  html; 
    index  index.html index.htm; 
    # 需要實(shí)現(xiàn)負(fù)載均衡的地址
    proxy_pass http://ip; 
}
2、按照一定比例輪詢
upstream ipaddr { 
# weight 的值越大 所請(qǐng)求到的幾率越大
    server 192.168.1.101:8080 weight=1; 
    server 192.168.1.102:8081 weight=2; 
}
3、響應(yīng)分配
upstream ipaddr {
    # 公平地按照后端服務(wù)器的響應(yīng)時(shí)間(rt)來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短即rt小的后端服務(wù)器優(yōu)先分配請(qǐng)求
    server 192.168.1.101;
    server 192.168.1.102;
    fair;
}
4、固定ip分配
upstream ipaddr {
    # 請(qǐng)求按照訪問(wèn)ip(即Nginx的前置服務(wù)器或者客戶端IP)的hash結(jié)果分配,這樣每個(gè)訪客會(huì)固定訪問(wèn)一個(gè)后端服務(wù)器,可以解決session一致問(wèn)題。
    ip_hash;
    server 192.168.1.101;
    server 192.168.1.102;
}
5、請(qǐng)求結(jié)果分配
upstream ipaddr {
    # 與ip_hash類(lèi)似,但是按照訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求,使得每個(gè)url定向到同一個(gè)后端服務(wù)器,主要應(yīng)用于后端服務(wù)器為緩存時(shí)的場(chǎng)景下。
    server 192.168.1.101;
    server 192.168.1.102;
    server 192.168.1.103;
    hash $request_uri;
    hash_method crc32;
}

以上就是常用得一些nginx功能分享,如果錯(cuò)誤請(qǐng)指正,十分感謝!

學(xué)習(xí)這件事,不是缺乏時(shí)間,而是缺乏努力。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多