Nginx基本使用

一、點(diǎn)我下載

二澈圈、解壓文件

image.png

在當(dāng)前文件夾下通過終端就可以操作nginx

三绳慎、配置詳解

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


述配置都是存放在main全局配置模塊中的配置項(xiàng)

user用來(lái)指定nginx worker進(jìn)程運(yùn)行用戶以及用戶組甘萧,默認(rèn)nobody賬號(hào)運(yùn)行

worker_processes指定nginx要開啟的子進(jìn)程數(shù)量台夺,
運(yùn)行過程中監(jiān)控每個(gè)進(jìn)程消耗內(nèi)存(一般幾M~幾十M不等)根據(jù)實(shí)際情況進(jìn)行調(diào)整,
通常數(shù)量是CPU內(nèi)核數(shù)量的整數(shù)倍

error_log定義錯(cuò)誤日志文件的位置及輸出級(jí)別
【debug / info / notice / warn / error / crit】

pid用來(lái)指定進(jìn)程id的存儲(chǔ)文件的位置

worker_rlimit_nofile用于指定一個(gè)進(jìn)程可以打開最多文件數(shù)量的描述

events:用于nginx工作模式的配置

events {
    worker_connections  1024;
    multi_accept on;
    use epoll;
}


上述配置是針對(duì)nginx服務(wù)器的工作模式的一些操作配置

worker_connections 指定最大可以同時(shí)接收的連接數(shù)量,
這里一定要注意纪挎,最大連接數(shù)量是和worker processes共同決定的期贫。

multi_accept 配置指定nginx在收到一個(gè)新連接通知后盡可能多的接受更多的連接

use epoll 配置指定了線程輪詢的方法,如果是linux2.6+异袄,使用epoll通砍,
如果是BSD如Mac請(qǐng)使用Kqueue

http:用于進(jìn)行http協(xié)議信息的一些配置

作為web服務(wù)器,http模塊是nginx最核心的一個(gè)模塊烤蜕,配置項(xiàng)也是比較多的封孙,
項(xiàng)目中會(huì)設(shè)置到很多的實(shí)際業(yè)務(wù)場(chǎng)景,需要根據(jù)硬件信息進(jìn)行適當(dāng)?shù)呐渲茫?常規(guī)情況下讽营,使用默認(rèn)配置即可


http {
    ##
    # 基礎(chǔ)配置
    ##
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    ##
    # SSL證書配置
    ##
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;
    ##
    # 日志配置
    ##
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    ##
    # Gzip 壓縮配置
    ##
    gzip on;
    gzip_disable "msie6";
    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript
 text/xml application/xml application/xml+rss text/javascript;
    ##
    # 虛擬主機(jī)配置
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
 
sendfile on:配置on讓sendfile發(fā)揮作用虎忌,將文件的回寫過程交給數(shù)據(jù)緩沖去去完成,
 而不是放在應(yīng)用中完成橱鹏,這樣的話在性能提升有有好處

tc_nopush on:讓nginx在一個(gè)數(shù)據(jù)包中發(fā)送所有的頭文件膜蠢,而不是一個(gè)一個(gè)單獨(dú)發(fā)

tcp_nodelay on:讓nginx不要緩存數(shù)據(jù),而是一段一段發(fā)送莉兰,如果數(shù)據(jù)的傳輸有實(shí)時(shí)
性的要求的話可以配置它挑围,發(fā)送完一小段數(shù)據(jù)就立刻能得到返回值,但是不要濫用哦

keepalive_timeout 10:給客戶端分配連接超時(shí)時(shí)間贮勃,服務(wù)器會(huì)在這個(gè)時(shí)間過后關(guān)閉連接贪惹。
一般設(shè)置時(shí)間較短苏章,可以讓nginx工作持續(xù)性更好

client_header_timeout 10:設(shè)置請(qǐng)求頭的超時(shí)時(shí)間

client_body_timeout 10:設(shè)置請(qǐng)求體的超時(shí)時(shí)間

send_timeout 10:指定客戶端響應(yīng)超時(shí)時(shí)間寂嘉,如果客戶端兩次操作間隔超過這個(gè)時(shí)間,
服務(wù)器就會(huì)關(guān)閉這個(gè)鏈接

limit_conn_zone $binary_remote_addr zone=addr:5m :設(shè)置用于保存各種key的共享
內(nèi)存的參數(shù).

limit_conn addr 100: 給定的key設(shè)置最大連接數(shù)

server_tokens:雖然不會(huì)讓nginx執(zhí)行速度更快枫绅,但是可以在錯(cuò)誤頁(yè)面關(guān)閉nginx版本
 提示泉孩,對(duì)于網(wǎng)站安全性的提升有好處哦

include /etc/nginx/mime.types:指定在當(dāng)前文件中包含另一個(gè)文件的指令

default_type application/octet-stream:指定默認(rèn)處理的文件類型可以是二進(jìn)制

type_hash_max_size 2048:混淆數(shù)據(jù),影響三列沖突率并淋,值越大消耗內(nèi)存越多寓搬,
 散列key沖突率會(huì)降低,檢索速度更快县耽;值越小key句喷,占用內(nèi)存較少,沖突率越高兔毙,
檢索速度變慢

2) 日志配置
access_log logs/access.log:設(shè)置存儲(chǔ)訪問記錄的日志
error_log logs/error.log:設(shè)置存儲(chǔ)記錄錯(cuò)誤發(fā)生的日志

3) SSL證書加密
ssl_protocols:指令用于啟動(dòng)特定的加密協(xié)議唾琼,nginx在1.1.13和1.0.12版本后默認(rèn)
是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,TLSv1.1與TLSv1.2要確保
OpenSSL >= 1.0.1 澎剥,SSLv3 現(xiàn)在還有很多地方在用但有不少被攻擊的漏洞锡溯。

ssl prefer server ciphers:設(shè)置協(xié)商加密算法時(shí),優(yōu)先使用我們服務(wù)端的加密套件,
而不是客戶端瀏覽器的加密套件
4) 壓縮配置
gzip 是告訴nginx采用gzip壓縮的形式發(fā)送數(shù)據(jù)祭饭。這將會(huì)減少我們發(fā)送的數(shù)據(jù)量芜茵。

gzip_disable 為指定的客戶端禁用gzip功能。我們?cè)O(shè)置成IE6或者更低版本以使我
們的方案能夠廣泛兼容倡蝙。

gzip_static 告訴nginx在壓縮資源之前九串,先查找是否有預(yù)先gzip處理過的資源。這
要求你預(yù)先壓縮你的文件(在這個(gè)例子中被注釋掉了)寺鸥,從而允許你使用最高壓
縮比蒸辆,這樣nginx就不用再壓縮這些文件了(想要更詳盡的gzip_static的信息,請(qǐng)
點(diǎn)擊這里)析既。

gzip_proxied 允許或者禁止壓縮基于請(qǐng)求和響應(yīng)的響應(yīng)流躬贡。我們?cè)O(shè)置為any,意味
著將會(huì)壓縮所有的請(qǐng)求眼坏。

gzip_min_length 設(shè)置對(duì)數(shù)據(jù)啟用壓縮的最少字節(jié)數(shù)拂玻。如果一個(gè)請(qǐng)求小于1000字節(jié),
我們最好不要壓縮它宰译,因?yàn)閴嚎s這些小的數(shù)據(jù)會(huì)降低處理此請(qǐng)求的所有進(jìn)程的速度檐蚜。

gzip_comp_level 設(shè)置數(shù)據(jù)的壓縮等級(jí)。這個(gè)等級(jí)可以是1-9之間的任意數(shù)值沿侈,9是
最慢但是壓縮比最大的闯第。我們?cè)O(shè)置為4,這是一個(gè)比較折中的設(shè)置缀拭。

gzip_type 設(shè)置需要壓縮的數(shù)據(jù)格式咳短。上面例子中已經(jīng)有一些了,你也可以再添加
更多的格式蛛淋。

5) 文件緩存配置
open_file_cache 打開緩存的同時(shí)也指定了緩存最大數(shù)目咙好,以及緩存的時(shí)間。我們
可以設(shè)置一個(gè)相對(duì)高的最大時(shí)間褐荷,這樣我們可以在它們不活動(dòng)超過20秒后清除掉勾效。

open_file_cache_valid 在open_file_cache中指定檢測(cè)正確信息的間隔時(shí)間。

open_file_cache_min_uses 定義了open_file_cache中指令參數(shù)不活動(dòng)時(shí)間期間里
最小的文件數(shù)叛甫。

open_file_cache_errors 指定了當(dāng)搜索一個(gè)文件時(shí)是否緩存錯(cuò)誤信息层宫,也包括再次
給配置中添加文件。我們也包括了服務(wù)器模塊其监,這些是在不同文件中定義的萌腿。如果
你的服務(wù)器模塊不在這些位置,你就得修改這一行來(lái)指定正確的位置棠赛。

server:用于進(jìn)行服務(wù)器訪問信息的配置

srever模塊配置是http模塊中的一個(gè)子模塊哮奇,用來(lái)定義一個(gè)虛擬訪問主機(jī)膛腐,
也就是一個(gè)虛擬服務(wù)器的配置信息

server {
        listen        80;
        server_name localhost    192.168.1.100;
        root        /nginx/www;
        index        index.php index.html index.html;
        charset        utf-8;
        access_log    logs/access.log;
        error_log    logs/error.log;
        ......
}

server:一個(gè)虛擬主機(jī)的配置,一個(gè)http中可以配置多個(gè)server

server_name:用力啊指定ip地址或者域名鼎俘,多個(gè)配置之間用空格分隔

root:表示整個(gè)server虛擬主機(jī)內(nèi)的根目錄哲身,所有當(dāng)前主機(jī)中web項(xiàng)目的根目錄

index:用戶訪問web網(wǎng)站時(shí)的全局首頁(yè)

charset:用于設(shè)置www/路徑中配置的網(wǎng)頁(yè)的默認(rèn)編碼格式

access_log:用于指定該虛擬主機(jī)服務(wù)器中的訪問記錄日志存放路徑

error_log:用于指定該虛擬主機(jī)服務(wù)器中訪問錯(cuò)誤日志的存放路徑

location:用于進(jìn)行訪問路由的配置

location模塊是nginx配置中出現(xiàn)最多的一個(gè)配置,主要用于配置路由訪問信息
在路由訪問信息配置中關(guān)聯(lián)到反向代理贸伐、負(fù)載均衡等等各項(xiàng)功能勘天,所以location
模塊也是一個(gè)非常重要的配置模塊


location / {
          root    /nginx/www;
          index    index.php index.html index.htm;
}
location /:表示匹配訪問根目錄

root:用于指定訪問根目錄時(shí),訪問虛擬主機(jī)的web目錄

index:在不指定訪問具體資源時(shí)捉邢,默認(rèn)展示的資源文件列表
 
 
location /api {
            proxy_pass http://www.baidu.com;

            #以下是一些反向代理的配置可刪除

            proxy_redirect     off; 

            #后端的Web服務(wù)器可以通過X-Forwarded-For獲取用戶真實(shí)IP

            proxy_set_header   Host $host; 

            proxy_set_header   X-Real-IP $remote_addr; 

            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 

            client_max_body_size       10m; #允許客戶端請(qǐng)求的最大單文件字節(jié)數(shù)

            client_body_buffer_size    128k; #緩沖區(qū)代理緩沖用戶端請(qǐng)求的最大字節(jié)數(shù)

            proxy_connect_timeout      300; #nginx跟后端服務(wù)器連接超時(shí)時(shí)間(代理連接超時(shí))

            proxy_send_timeout         300; #后端服務(wù)器數(shù)據(jù)回傳時(shí)間(代理發(fā)送超時(shí))

            proxy_read_timeout         300; #連接成功后脯丝,后端服務(wù)器響應(yīng)時(shí)間(代理接收超時(shí))

            proxy_buffer_size          4k; #設(shè)置代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小

            proxy_buffers              4 32k; #proxy_buffers緩沖區(qū),網(wǎng)頁(yè)平均在32k以下就設(shè)置

            proxy_busy_buffers_size    64k; #高負(fù)荷下緩沖大蟹ァ(proxy_buffers*2)

            proxy_temp_file_write_size 64k; #設(shè)定緩存文件夾大小宠进,大于這個(gè)值,
                                                                將從upstream服務(wù)器傳

    }

upstream:用于進(jìn)行負(fù)載均衡的配置

upstream模塊主要負(fù)責(zé)負(fù)載均衡的配置藐翎,
通過默認(rèn)的輪詢調(diào)度方式來(lái)分發(fā)請(qǐng)求到后端服務(wù)器

  upstream name {
        ip_hash;
        server 192.168.1.100:8000;
        server 192.168.1.100:8001 down;
        server 192.168.1.100:8002 max_fails=3;
        server 192.168.1.100:8003 fail_timeout=20s;
        server 192.168.1.100:8004 max_fails=3 fail_timeout=20s;
  }
 
ip_hash:指定請(qǐng)求調(diào)度算法材蹬,默認(rèn)是weight權(quán)重輪詢調(diào)度,可以指定

server host:port:分發(fā)服務(wù)器的列表配置

-- down:表示該主機(jī)暫停服務(wù)

-- max_fails:表示失敗最大次數(shù)吝镣,超過失敗最大次數(shù)暫停服務(wù)

-- fail_timeout:表示如果請(qǐng)求受理失敗堤器,暫停指定的時(shí)間之后重新發(fā)起請(qǐng)求

四、跨域代理

在http這個(gè)配置項(xiàng)的下面找到server這個(gè)配置項(xiàng)末贾,我們?cè)趕erver中實(shí)現(xiàn)跨域代理

  location /demo/ {
    root html;
    index index.html index.htm;
  }

上面這個(gè)配置的意思是  當(dāng)訪問location 下面的/demo 路徑的時(shí)候 
找到根文件加(root html),訪問根文件夾下面的index.html
![image.png](https://upload-images.jianshu.io/upload_images/17573670-8a75ac3d34411088.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

五闸溃、nginx基本命令

//強(qiáng)制停止nginx服務(wù)器,如果有未處理的數(shù)據(jù)拱撵,丟棄
nginx -s stop

//停止nginx服務(wù)器辉川,如果有未處理的數(shù)據(jù),等待處理完成之后停止
nginx -s quit

//重啟nginx服務(wù)器
nginx -s reload
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末裕膀,一起剝皮案震驚了整個(gè)濱河市员串,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昼扛,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欲诺,死亡現(xiàn)場(chǎng)離奇詭異抄谐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)扰法,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門蛹含,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人塞颁,你說(shuō)我怎么就攤上這事浦箱∥ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵酷窥,是天一觀的道長(zhǎng)咽安。 經(jīng)常有香客問我,道長(zhǎng)蓬推,這世上最難降的妖魔是什么妆棒? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮沸伏,結(jié)果婚禮上糕珊,老公的妹妹穿的比我還像新娘。我一直安慰自己毅糟,他們只是感情好红选,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著姆另,像睡著了一般纠脾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜕青,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天苟蹈,我揣著相機(jī)與錄音,去河邊找鬼右核。 笑死慧脱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贺喝。 我是一名探鬼主播菱鸥,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼躏鱼!你這毒婦竟也來(lái)了氮采?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤染苛,失蹤者是張志新(化名)和其女友劉穎鹊漠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茶行,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躯概,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了畔师。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娶靡。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖看锉,靈堂內(nèi)的尸體忽然破棺而出姿锭,到底是詐尸還是另有隱情塔鳍,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布呻此,位于F島的核電站轮纫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏趾诗。R本人自食惡果不足惜蜡感,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恃泪。 院中可真熱鬧郑兴,春花似錦、人聲如沸贝乎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)览效。三九已至却舀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锤灿,已是汗流浹背挽拔。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留但校,地道東北人螃诅。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像状囱,于是被迫代替她去往敵國(guó)和親术裸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355