日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

深入Nginx之《常用参数配置技巧》

發布時間:2023/12/13 Nginx 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入Nginx之《常用参数配置技巧》 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常見參配置實戰技巧

????下面會講解實戰中應該怎么配置更為合理。


?

1.user

????默認是nobody,如果使用nobody,Nginx在運行過程中會出現很多操作沒有權限,比如寫硬盤。一般都是用低于root級別的用戶,比如www,并且可以在linux下設置www禁止ssh登錄服務器,提高安全性;

?

2.worker_processes

????代表Nginx worker的進程數,一般情況下建議和機器的核數相同,也可以配置 worker_processes auto ; (Nginx1.2.5版本添加的) 自動根據cpu核數進行進程啟動;

????但是實際應用中,服務器不一定只跑了Nginx,需要考慮機器資源會被分配到哪些服務上,避免進程啟動過多,和其他服務競爭cpu,導致過多上下文切換;

?

3.worker_cpu_affinity auto

Nginx 1.9.10添加的功能,表示可以根據服務器的核數自動配cpu親緣性,提升Nginx的性能;

?

4、error_log & access_log

關于日志記錄的,error_log 配置為error級別, 減少不必要的日志記錄, 如果是測試環境可以開啟info級別。日志記錄需要考慮硬盤的獨立性,不要使用linux的根分區,避免大量的io影響Linux服務器吞吐能力。單獨掛載一個磁盤,獨立使用io;

另外硬盤的使用壽命需要注意,關注message的日志,定期檢查硬盤(Nginx記錄日志是異步處理,并且不會因為硬盤的問題,導致請求異常,但是會影響日志的記錄) ;

?

5.worker_priority

????配置Nginx在linux服務器上資源使用的優先級,作為反向代理服務,應該擁有極高的優先級,建議配置到-10;

?

6.gzip_comp_level

????壓縮等級,等級最高為9,等級越高壓縮后的文件越小,但是消耗的cpu也會更多,經過測試,壓縮等級7 和 9 的文件大小相比,其實只有細微的差別,用5-7的等級足矣;

?

7.upstream塊

????配置上游服務器,可以結合 proxy_next_upstream 等指令做大量的優化,我會在下面的章節單獨說明;

?

8.error_page

????錯誤重定向,可以捕獲上游服務器錯誤的狀態碼后,將請求重定向到其它地方,比如提供友好頁面,關于error_page的更強大的使用方式。

?

9.location & root

????通過root路徑可以讀取靜態文件,在1.7.11以前的版本,Nginx讀取硬盤的文件,都是阻塞型操作,后面引入了線程池,使得讀取硬盤提供了非阻塞的操作,極大的提升了硬盤的io,也提升了proxy_cache的能力。

Nginx的常見配置在使用中都有著不同的變化,那么對于更為復雜的配置來說,其配置就顯得更為精妙了,所以熟悉Nginx的官方wiki是發揮它巨大作用的基礎。

?

常見配置注解


?

user ?www www;???

????#定義Nginx運行的用戶和用戶組

worker_processes ?2;????

????#Nginx進程數

worker_cpu_affinity auto;????

????#配置Nginx進程cpu親源性

error_log ?/var/log/error_log ?info;????

????#全局錯誤日志定義類型?,默認是error

worker_rlimit_nofile 65535;????

????#一個Nginx進程打開的最多文件描述符數量

pid /var/run/nginx.pid;????

????#進程文件

worker_priority -10;????

????#linnx系統下的資源使用的優先級

worker_rlimit_nofile ?65535;????

????#worker進程的最大打開文件數限制

worker_shutdown_timeout ?30;????

????#30s內Nginx無法平滑退出,就強行關閉進程

events {

??worker_connections ?10000;????

????#單個進程最大連接數(整個Nginx最大連接數=連接數*進程數)

??use epoll;????

????#epoll linux2.6+內核高性能的網絡io,?如果跑在FreeBSD上面,就用kqueue模型。

}

?

http {

????include ??????conf/mime.types;????

????#文件擴展名與文件類型映射表

????default_type ?application/octet-stream;?????

????#默認文件類型

????log_format main ????'$remote_addr - $remote_user [$time_local] '

?????????????????????????'"$request" $status $bytes_sent '

?????????????????????????'"$http_referer" "$http_user_agent" '

?????????????????????????‘"$http_cookie"';???

????#定義日志格式

????client_header_buffer_size ???1k;????

????#設置用戶請求頭所使用的buffer大小

????large_client_header_buffers ?4 4k;????

????#當默認的緩沖不夠用時就會使用此參數。

????server_names_hash_bucket_size 128;????

????#服務器名字的hash表大小

????client_header_buffer_size 32k;????

????#上傳文件大小限制

????gzip?on;????

????#開啟gzip

????gzip?_comp_level 6;????

????#壓縮等級

????gzip?_min_length ?1100;????

????#設置允許壓縮的頁面最小字節數

????gzip?_buffers ????4 8k;????

????#設置系統獲取幾個單位的緩存用于存儲gzIP的壓縮結果數據流。4 8k?代表以8k為單位,按照原始數據大小以8k為單位的4倍申請內存。

????gzip?_types ??????text/plain text/css;????

????#匹配MIME類型進行壓縮

????output_buffers ??2 32k;????

????#設置用于從磁盤讀取響應的緩沖區的數量和大小。?此設置為:按照原始數據大小以32K為單位的2倍大小申請內存空間。

????sendfile ????????on;????

????#啟用sendfile()函數

????tcp_nopush ??????on;????

????#防止網絡阻塞,需要sendfile開啟

????tcp_nodelay ?????on;????

????#防止網絡阻塞,需要sendfile開啟

????keepalive_timeout 90s;????

????#長連接超時時間,單位是秒

????upstream backend {

????server 192.168.1.12:8081 weight=3;

????server 192.168.1.13:8081 weight=2;

}?

????#upstream塊,weight是權重,權重越高,請求的比例越高。?

????server {

????????listen ??????80;?????

?????????#http監聽端口

????????server_name ?your.example.com;??

????????#域名

????????access_log ??/var/log/nginx.access_log ?main;?????

????????#訪問日志記錄

????????charset ?koi8-r;????

????????#默認編碼

????????location / {

????????????proxy_pass ????????http://backend ;

????????????proxy_redirect ????off;

????????????proxy_set_header ??Host ????????????$host;

????????????proxy_set_header ??X-Real-Ip ??????$remote_addr;

????????????proxy_set_header ?X-Forwarded-For ?$proxy_add_x_forwarded_for; ??????}????

????????#后端的應用服務器通過X-Forwarded-For獲取用戶的真實IP

????????error_page ?404 ?/404.html;????

????????#對于后端應用服務器拋出的錯誤404?進行頁面重定向

????????location /404.html {

????????????root ?/spool/www;

????????}?

????????#?匹配URL為jpg,jpeg,gif結尾的,直接去系統文件讀取

????????location ~* \.(jpg|jpeg|gif)$ {

????????????root ????????/spool/www;

????????????expires ?????30d;????

????????#瀏覽器緩存的時間

????????}

????}

轉載于:https://www.cnblogs.com/dtdxrk/p/9438497.html

總結

以上是生活随笔為你收集整理的深入Nginx之《常用参数配置技巧》的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。