最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx配置終極版學(xué)習(xí)指南(可能全網(wǎng)最詳細(xì))

 更新時(shí)間:2026年02月06日 11:10:46   作者:hhzz  
Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,特點(diǎn)是占用內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上Nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)好,這篇文章主要介紹了Nginx配置終極版學(xué)習(xí)指南的相關(guān)資料,需要的朋友可以參考下

1、安裝nginx,獲取原本配置

Centos系統(tǒng)安裝nginx:

yum install nginx

Nginx 的默認(rèn)配置文件通常位于 /etc/nginx/nginx.conf

root目錄一般在 /usr/share/nginx/html

2、解析nginx.conf原本配置

編輯/etc/nginx/nginx.conf文件:

這個(gè)文件總共117行(其中注釋占一大半之多)

2.1 原本配置(117行)

#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;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

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

}

2.2 精簡(jiǎn)配置(22行)

我們把其中的注釋都刪掉,除掉了注釋之后的nginx代碼(只有22行):

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2.3 詳細(xì)解釋(22行)

注解版本:

#工作進(jìn)程數(shù)量
worker_processes  1;
# 事件區(qū)塊開(kāi)始
events {
    #單個(gè)進(jìn)程最大連接數(shù)(最大連接數(shù)=連接數(shù)*進(jìn)程數(shù))
    #根據(jù)硬件調(diào)整,和前面工作進(jìn)程配合起來(lái)用,盡量大,但是別把cpu跑到100%就行。每個(gè)進(jìn)程允許的最多連接數(shù),理論上每臺(tái)nginx服務(wù)器的最大連接數(shù)為。
    worker_connections  1024;
}
#設(shè)定http服務(wù)器,利用它的反向代理功能提供負(fù)載均衡支持
http {
    #include:導(dǎo)入外部文件mime.types,將所有types提取為文件,然后導(dǎo)入到nginx配置文件中
    include       mime.types;
     #默認(rèn)文件類型
    default_type  application/octet-stream;
    #開(kāi)啟高效文件傳輸模式,sendfile指令指定nginx是否調(diào)用sendfile函數(shù)來(lái)輸出文件,對(duì)于普通應(yīng)用設(shè)為 on,如果用來(lái)進(jìn)行下載等應(yīng)用磁盤(pán)IO重負(fù)載應(yīng)用,可設(shè)置為off,以平衡磁盤(pán)與網(wǎng)絡(luò)I/O處理速度,降低系統(tǒng)的負(fù)載。注意:如果圖片顯示不正常把這個(gè)改成off。
    #sendfile指令指定 nginx 是否調(diào)用sendfile 函數(shù)(zero copy 方式)來(lái)輸出文件,對(duì)于普通應(yīng)用,必須設(shè)為on。如果用來(lái)進(jìn)行下載等應(yīng)用磁盤(pán)IO重負(fù)載應(yīng)用,可設(shè)置為off,以平衡磁盤(pán)與網(wǎng)絡(luò)IO處理速度,降低系統(tǒng)uptime。
    sendfile        on;
      #長(zhǎng)連接超時(shí)時(shí)間,單位是秒
    keepalive_timeout  65;
    # 第一個(gè)Server區(qū)塊開(kāi)始,表示一個(gè)獨(dú)立的虛擬主機(jī)站點(diǎn)
    server {
        # 提供服務(wù)的端口,默認(rèn)80
        listen       80;
        # 提供服務(wù)的域名主機(jī)名
        server_name  localhost;
        #對(duì) "/" 啟用反向代理,第一個(gè)location區(qū)塊開(kāi)始
        location / {
            root   html;  #服務(wù)默認(rèn)啟動(dòng)目錄
            index  index.html index.htm; # 默認(rèn)的首頁(yè)文件,多個(gè)用空格分開(kāi)
        }
         # 錯(cuò)誤頁(yè)面路由
        error_page   500 502 503 504  /50x.html; # 出現(xiàn)對(duì)應(yīng)的http狀態(tài)碼時(shí),使用50x.html回應(yīng)客戶
        location = /50x.html { # location區(qū)塊開(kāi)始,訪問(wèn)50x.html
            root   html;  # 指定對(duì)應(yīng)的站點(diǎn)目錄為html
        }
    }
}

3、深入理解

nginx.conf分為三個(gè)部分:

  • 第一部分:全局塊
  • 第二部分:events塊
  • 第三部分:http塊

對(duì)應(yīng)圖解:

3.1、全局塊

作用:

從配置文件開(kāi)始到 events 塊之間的內(nèi)容,主要會(huì)設(shè)置一些影響nginx 服務(wù)器整體運(yùn)行的配置指令,主要包括配 置運(yùn)行 Nginx
服務(wù)器的用戶(組)、允許生成的 worker process 數(shù),進(jìn)程 PID 存放路徑、日志存放路徑和類型以 及配置文件的引入等。

比如上面第一行配置的

worker_processes  1;

這是 Nginx 服務(wù)器并發(fā)處理服務(wù)的關(guān)鍵配置,worker_processes 值越大,可以支持的并發(fā)處理量也越多,但是 會(huì)受到硬件、軟件等設(shè)備的制約。

3.2、events塊

作用:
events 塊涉及的指令主要影響 Nginx 服務(wù)器與用戶的網(wǎng)絡(luò)連接,常用的設(shè)置包括是否開(kāi)啟對(duì)多 work process 下的網(wǎng)絡(luò)連接進(jìn)行序列化,是否 允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接,選取哪種事件驅(qū)動(dòng)模型來(lái)處理連接請(qǐng)求,每個(gè) word process 可以同時(shí)支持的最大連接數(shù)等。

worker_connections  1024;

上述例子就表示每個(gè) work process 支持的最大連接數(shù)為 1024。

這部分的配置對(duì) Nginx 的性能影響較大,在實(shí)際中應(yīng)該靈活配置。

3.3、http塊

作用:
這算是 Nginx 服務(wù)器配置中最頻繁的部分,代理、緩存和日志定義等絕大多數(shù)功能和第三方模塊的配置都在這里。

需要注意的是:http 塊也可以包括 http全局塊、server 塊。

  • http全局塊

http全局塊配置的指令包括文件引入、MIME-TYPE 定義、日志自定義、連接超時(shí)時(shí)間、單鏈接請(qǐng)求數(shù)上限等。

  • server 塊

這塊和虛擬主機(jī)有密切關(guān)系,虛擬主機(jī)從用戶角度看,和一獨(dú)立的硬件主機(jī)是完全一樣的,該技術(shù)的產(chǎn)生是為了 節(jié)省互聯(lián)網(wǎng)服務(wù)器硬件成本。

每個(gè) http 塊可以包括多個(gè) server 塊,而每個(gè) server 塊就相當(dāng)于一個(gè)虛擬主機(jī)。 而每個(gè) server 塊也分為全局
server 塊,以及可以同時(shí)包含多個(gè) locaton 塊。

  • 全局 server 塊

最常見(jiàn)的配置是本虛擬機(jī)主機(jī)的監(jiān)聽(tīng)配置和本虛擬主機(jī)的名稱或IP配置。

  • location 塊

一個(gè) server 塊可以配置多個(gè) location 塊。

這塊的主要作用是基于 Nginx 服務(wù)器接收到的請(qǐng)求字符串(例如 server_name/uri-string),對(duì)虛擬主機(jī)名稱 (也可以是IP 別名)之外的字符串(例如 前面的 /uri-string)進(jìn)行匹配,對(duì)特定的請(qǐng)求進(jìn)行處理。地址定向、數(shù)據(jù)緩 存和應(yīng)答控制等功能,還有許多第三方模塊的配置也在這里進(jìn)行。

4、最簡(jiǎn)單的上線配置

最簡(jiǎn)單的上線配置只需要去修改兩個(gè)地方即可:

默認(rèn)簡(jiǎn)單的配置:指定server_name和root,nginx代理的ip是xxx,然后我放在服務(wù)器的文件在html文件夾即可。nginx便會(huì)在用戶訪問(wèn)這個(gè)ip時(shí),自動(dòng)的將html文件夾中的index.html返回到瀏覽器來(lái)展示頁(yè)面。

5、nginx優(yōu)化:

5.1、錯(cuò)誤頁(yè)面重定向

當(dāng)用戶刷新頁(yè)面時(shí),Nginx會(huì)先檢查當(dāng)前URL是否存在,如果不存在,就會(huì)嘗試訪問(wèn)html文件夾里面的index.html,從而可以正常顯示頁(yè)面。

5.2、反向代理:

主流解決跨域的方式就是反向代理

理解:

這段代碼的意思:大致就是如果遇到以.php請(qǐng)求開(kāi)頭的接口,那么就去訪問(wèn)這個(gè)ip地址(http://127.0.0.1)的后臺(tái)端口。

例如我們通過(guò)axios去訪問(wèn)/police/getList這個(gè)后臺(tái)接口時(shí),nginx會(huì)將這個(gè)請(qǐng)求轉(zhuǎn)發(fā)到ip端口為http://192.168.1.182:8852的后臺(tái)中,后臺(tái)將結(jié)果返回給nginx,nginx再把結(jié)果給到瀏覽器,實(shí)現(xiàn)反向代理。

定義多個(gè)端口的反向代理:copy上面的,直接修改代理頭和proxy_pass即可

5.3、開(kāi)啟gzip

作用:

開(kāi)啟gzip對(duì)于前端來(lái)說(shuō)還是比較重要的,瀏覽器加載的包大概能節(jié)約一半的空間。例如首頁(yè)需要加載a.js文件,該文件為900kb,在開(kāi)啟gzip之后,瀏覽器會(huì)去加載a.js經(jīng)過(guò)gzip之后的文件a.js.gz,大概只有450kb,能夠很好的提升瀏覽速度。

**如何配置:**

gzip on; # 默認(rèn)off,是否開(kāi)啟gzip
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

# 上面兩個(gè)開(kāi)啟基本就能跑起了,下面的愿意折騰就了解一下
gzip_static on;
gzip_proxied any;
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
# gzip_min_length 1k;
gzip_http_version 1.1;

具體位置:

5.4、維護(hù)頁(yè)面:

作用:

在系統(tǒng)進(jìn)行維護(hù)升級(jí)時(shí),用戶打開(kāi)我們的網(wǎng)站看到的維護(hù)頁(yè)面。

如何配置:

 # 系統(tǒng)臨時(shí)維護(hù)請(qǐng)打開(kāi)下面這行注釋,并重啟nginx,維護(hù)完畢后請(qǐng)注釋下年這行,并重啟nginx
 # rewrite ^(.*)$ /maintainace.html break;

具體位置:

5.5、一個(gè)ip上線多個(gè)網(wǎng)站:

作用:

只有一個(gè)ip。利用nginx上線多個(gè)網(wǎng)站。例如訪問(wèn)127.0.0.1:8080訪問(wèn)我們的個(gè)人博客網(wǎng)站,訪問(wèn)127.0.0.1:8081訪問(wèn)我們的直播網(wǎng)站。

如何配置:

直接復(fù)制server塊即可,一個(gè)server塊就代表了一個(gè)網(wǎng)站,需要改端口和文件的路徑等內(nèi)容。

# 項(xiàng)目一
  server {
   listen       8080;
   root         /data/www/hexo;
   index        index.html;
   location / {
    try_files $uri $uri/ /index.html; # 路由模式history的修改
   }
  }

 # 項(xiàng)目二
 server {
  listen       8081;
  root         /data/www/geov;
  index        index.html;
  location / {}
 }

5.6、動(dòng)靜分離

作用:

在Web開(kāi)發(fā)中,通常來(lái)說(shuō),動(dòng)態(tài)資源其實(shí)就是指那些后臺(tái)資源,而靜態(tài)資源就是指HTML,JavaScript,CSS,img等文件。

一般來(lái)說(shuō),都需要將動(dòng)態(tài)資源和靜態(tài)資源分開(kāi),將靜態(tài)資源部署在Nginx上,當(dāng)一個(gè)請(qǐng)求來(lái)的時(shí)候,如果是靜態(tài)資源的請(qǐng)求,就直接到nginx配置的靜態(tài)資源目錄下面獲取資源,如果是動(dòng)態(tài)資源的請(qǐng)求,nginx利用反向代理的原理,把請(qǐng)求轉(zhuǎn)發(fā)給后臺(tái)應(yīng)用去處理,從而實(shí)現(xiàn)動(dòng)靜分離。

在使用前后端分離之后,可以很大程度的提升靜態(tài)資源的訪問(wèn)速度,同時(shí)在開(kāi)過(guò)程中也可以讓前后端開(kāi)發(fā)并行可以有效的提高開(kāi)發(fā)時(shí)間,也可以有些的減少聯(lián)調(diào)時(shí)間 。

解析:

實(shí)際上我們?cè)诖砬岸说膆tml和接口時(shí)就已經(jīng)做到了動(dòng)靜分離。我們打包后的dist包實(shí)際上就是純靜態(tài)的資源,所以直接訪問(wèn)nginx靜態(tài)資源服務(wù)器,就不需要經(jīng)過(guò)后臺(tái)的tomcat。訪問(wèn)接口時(shí),就需要nginx先去訪問(wèn)后臺(tái)服務(wù)器,拿到結(jié)果再給到瀏覽器。

圖解:

如何配置(其實(shí)是優(yōu)化,因?yàn)橐话闩渲脮?huì)有動(dòng)靜分離):

假設(shè)有比較大的圖片等需要放置到服務(wù)器上,然后通過(guò)nginx來(lái)轉(zhuǎn)發(fā)?;蛘呤怯幸粋€(gè)純前端的開(kāi)源項(xiàng)目(如pdf.js),也需要放在服務(wù)器上。如果放在本地代碼包,打包出來(lái)體積會(huì)很大。

location /image/ {
  root   /var/filecenter/;
}
location /static/ {
  root   /var/filecenter/;
}
location /car/ {
  root   /var/filecenter/;
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
  root /Users/dalaoyang/Downloads/static;
}

具體位置:

5.7、其他優(yōu)化

這里只講了一些nginx基礎(chǔ)的知識(shí)和一些基礎(chǔ)的優(yōu)化,基本上夠用了。但是如果你需要追求更高的性能,那么可以添加其他的優(yōu)化,只需要根據(jù)一些搜索到的文章內(nèi)容copy過(guò)來(lái)就行了,nginx主要還是配置多一些,但是理解了整體結(jié)構(gòu)和脈絡(luò)的話,其實(shí)就還是蠻簡(jiǎn)單的。這里就不做過(guò)多的講解了。

6、nginx基礎(chǔ)命令(安裝,啟動(dòng),重啟,關(guān)閉)

安裝nginx:

yum install nginx

看是否有nginx進(jìn)程:

netstat -anput | grep nginx

查看服務(wù)器端口占用情況:

netstat -ntlp

nginx啟動(dòng):

nginx

nginx重啟:

nginx -s reload

關(guān)閉nginx:

nginx -s stop : 快速停止nginx
nginx -s quit :完整有序的停止nginx

查看默認(rèn)的nginx配置文件路徑:

nginx -t

注:如果有nginx.conf配置的更改,需要重啟nginx配置才會(huì)生效。如果只是更改dist包/html,則可以不重啟nginx。

#查看nginx狀態(tài)
systemctl status nginx
#停止nginx服務(wù)
service nginx stop
#開(kāi)啟nginx服務(wù)
service nginx start

總結(jié)

到此這篇關(guān)于Nginx配置的文章就介紹到這了,更多相關(guān)Nginx配置指南內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker Nginx容器和Tomcat容器實(shí)現(xiàn)負(fù)載均衡與動(dòng)靜分離操作

    Docker Nginx容器和Tomcat容器實(shí)現(xiàn)負(fù)載均衡與動(dòng)靜分離操作

    這篇文章主要介紹了Docker Nginx容器和Tomcat容器實(shí)現(xiàn)負(fù)載均衡與動(dòng)靜分離操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Nginx 動(dòng)態(tài)域名解析過(guò)程詳解

    Nginx 動(dòng)態(tài)域名解析過(guò)程詳解

    這篇文章主要為大家介紹了Nginx 動(dòng)態(tài)域名解析過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Nginx 安裝配置及常用命令詳解

    Nginx 安裝配置及常用命令詳解

    本文介紹了Nginx的安裝、配置和啟動(dòng)等步驟,詳細(xì)介紹了Nginx的配置文件結(jié)構(gòu)和常用命令,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • 在Nginx服務(wù)器中配置mod_proxy反向代理的方法

    在Nginx服務(wù)器中配置mod_proxy反向代理的方法

    這篇文章主要介紹了在Nginx服務(wù)器中配置mod_proxy反向代理的方法,Nginx服務(wù)器最大的特點(diǎn)就是作高性能反向代理使用,需要的朋友可以參考下
    2015-07-07
  • 使用Nginx實(shí)現(xiàn)301跳轉(zhuǎn)至https的根域名示例代碼

    使用Nginx實(shí)現(xiàn)301跳轉(zhuǎn)至https的根域名示例代碼

    這篇文章主要介紹了使用Nginx實(shí)現(xiàn)301跳轉(zhuǎn)至https的根域名,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Nginx更新SSL證書(shū)的實(shí)現(xiàn)步驟

    Nginx更新SSL證書(shū)的實(shí)現(xiàn)步驟

    本文主要介紹了Nginx更新SSL證書(shū)的實(shí)現(xiàn)步驟,包括下載新證書(shū)、備份舊證書(shū)、配置新證書(shū)、驗(yàn)證配置及遇到問(wèn)題時(shí)的解決方法,感興趣的了解一下
    2025-12-12
  • 解決Nginx轉(zhuǎn)發(fā)圖片不能顯示的問(wèn)題

    解決Nginx轉(zhuǎn)發(fā)圖片不能顯示的問(wèn)題

    在使用Nginx作為反向代理將iServer的HTTP協(xié)議轉(zhuǎn)換為HTTPS協(xié)議時(shí),可能會(huì)遇到靜態(tài)資源無(wú)法加載、頁(yè)面跳轉(zhuǎn)回HTTP協(xié)議、訪問(wèn)服務(wù)管理界面權(quán)限問(wèn)題等情況,本文給大家介紹解決Nginx轉(zhuǎn)發(fā)圖片不能顯示的問(wèn)題,感興趣的朋友一起看看吧
    2024-11-11
  • nginx返回json或者文本格式的方法

    nginx返回json或者文本格式的方法

    下面小編就為大家分享一篇nginx返回json或者文本格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 使用systemctl方式管理nginx方式

    使用systemctl方式管理nginx方式

    這篇文章主要介紹了使用systemctl方式管理nginx方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 前端必備Nginx配置詳解

    前端必備Nginx配置詳解

    這篇文章主要介紹了前端必備Nginx配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論

潮安县| 睢宁县| 娄底市| 卢氏县| 军事| 白玉县| 泸水县| 呼玛县| 宁都县| 富阳市| 杭州市| 台北市| 许昌市| 县级市| 桓仁| 灌云县| 张北县| 颍上县| 大兴区| 五家渠市| 甘谷县| 福泉市| 汤原县| 米易县| 高碑店市| 皮山县| 巴中市| 个旧市| 大田县| 武夷山市| 乌苏市| 远安县| 黄梅县| 揭阳市| 甘孜| 玉屏| 舞钢市| 洮南市| 瑞丽市| 灵丘县| 太保市|