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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx.conf配置文件

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx.conf配置文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

默認配置文件

開頭的表示注釋內容

1 2 #user nobody;3 worker_processes 1;4 5 #error_log logs/error.log;6 #error_log logs/error.log notice;7 #error_log logs/error.log info;8 #error_log "pipe:rollback logs/error_log interval=1d baknum=7 maxsize=2G";9 10 #pid logs/nginx.pid;11 12 13 events {14 worker_connections 1024;15 }16 17 18 http {19 include mime.types;20 default_type application/octet-stream;21 22 #log_format main '$remote_addr - $remote_user [$time_local] "$request" '23 # '$status $body_bytes_sent "$http_referer" '24 # '"$http_user_agent" "$http_x_forwarded_for"';25 26 #access_log logs/access.log main;27 #access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main;28 29 sendfile on;30 #tcp_nopush on;

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

比如上面第一行配置的:

worker_processes 1;

這是 Nginx 服務器并發處理服務的關鍵配置,worker_processes 值越大,可以支持的并發處理量也越多,但是會受到硬件、軟件等設備的制約,一般有多少個CPU核就配置多少
我將worker_processes設置成8;一共啟動8個工作進程,master進程只有1個

[root@mylinux2 conf]# ps -ef | grep nginx root 1529 1 0 08:47 ? 00:00:00 nginx: master process nginx nobody 1530 1529 0 08:47 ? 00:00:00 nginx: worker process nobody 1531 1529 0 08:47 ? 00:00:00 nginx: worker process nobody 1532 1529 0 08:47 ? 00:00:00 nginx: worker process nobody 1533 1529 0 08:47 ? 00:00:00 nginx: worker process nobody 1534 1529 0 08:47 ? 00:00:00 nginx: worker process nobody 1535 1529 0 08:47 ? 00:00:00 nginx: worker process nobody 1536 1529 0 08:47 ? 00:00:00 nginx: worker process nobody 1537 1529 0 08:47 ? 00:00:00 nginx: worker process root 1546 1472 0 08:55 pts/0 00:00:00 grep --color=auto nginx events { worker_connections 1024; }

events 塊涉及的指令主要影響 Nginx 服務器與用戶的網絡連接,常用的設置包括是否開啟對多 work process 下的網絡連接進行序列化,是否允許同時接收多個網絡連接,選取哪種事件驅動模型來處理連接請求,每個 word process 可以同時支持的最大連接數等。
上述例子就表示每個 work process 支持的最大連接數為 1024.
這部分的配置對 Nginx 的性能影響較大,在實際中應該靈活配置。

一、http 全局塊

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

18 http {19 include mime.types;29 sendfile on;33 keepalive_timeout 65;37 server {38 listen 80;39 server_name localhost;45 46 location / {47 root html;48 index index.html index.htm;49 }error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}

二、server 塊

這塊和虛擬主機有密切關系,虛擬主機從用戶角度看,和一臺獨立的硬件主機是完全一樣的,該技術的產生是為了節省互聯網服務器硬件成本。后面會詳細介紹虛擬主機的概念。

每個 http 塊可以包括多個 server 塊,而每個 server 塊就相當于一個虛擬主機。
而每個 server 塊也分為全局 server 塊,以及可以同時包含多個 locaton 塊。

1、全局 server 塊

最常見的配置是本虛擬機主機的監聽配置和本虛擬主機的名稱或IP配置。

1)、listen

該指令用于配置網絡監聽。主要有如下三種配置語法結構:

1 listen *:80 | *:8080 #監聽所有80端口和8080端口 2 listen IP_address:port #監聽指定的地址和端口號 3 listen IP_address #監聽指定ip地址所有端口 4 listen port #監聽該端口的所有IP連接

2)、server_name

該指令用于虛擬主機的配置。通常分為以下兩種:

a、基于名稱的虛擬主機配置

語法格式如下:

server_name www.abc123.com;

b、基于 IP 地址的虛擬主機配置

語法結構和基于域名匹配一樣,而且不需要考慮通配符和正則表達式的問題。

server_name 192.168.1.1

案例1:通過nginx設置了2臺虛擬主機,讓不同的域名訪問不同的目錄,Nginx的虛擬機主機Server配置(配置百度項目和騰訊項目)

server {listen 80;server_name www.server1.com;location / {root /usr/local/tengine-2.3/baidu;index index.html index.htm;}}server {listen 80;server_name www.server2.com;location / {root /usr/local/tengine-2.3/qq;index index.html index.htm;}}

訪問服務器


用戶訪問百度的過程,而我們配置hosts的目的則是不用訪問DNS服務器

2、location 塊

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

該指令用于匹配 URL。

語法如下:

location [ = | ~ | ~* | ^~] uri { }

1、= :用于不含正則表達式的 uri 前,要求請求字符串與 uri 嚴格匹配,如果匹配成功,就停止繼續向下搜索并立即處理該請求。

2、~:用于表示 uri 包含正則表達式,并且區分大小寫。

3、~*:用于表示 uri 包含正則表達式,并且不區分大小寫。

4、^~:用于不含正則表達式的 uri 前,要求 Nginx 服務器找到標識 uri 和請求字符串匹配度最高的 location 后,立即使用此 location 處理請求,而不再使用 location 塊中的正則 uri 和請求字符串做匹配。

注意:如果 uri 包含正則表達式,則必須要有 ~ 或者 ~* 標識。

優先級: = > ^~ > ~ / ~* >模糊匹配
案例2
訪問http://www.server1.com/abc.html,會到/usr/local/tengine-2.3/baidu目錄下找abc.html文件abc.html一定是精確匹配

訪問http://www.server1.com/zilv.html,會匹配成功,會到/usr/local/tengine-2.3/qq目錄下找zilv.html文件,但是qq目錄下根本就沒有zilv.html文件,所以找不到。模糊匹配

訪問http://www.server1.com/index.html,會匹配成功,會到/usr/local/tengine-2.3/qq目錄下找index.html文件,而qq目錄下有index.html文件,所以會有返回

訪問http://www.server1.com/documents,會匹配成功(能匹配到2個,分別為’/‘和‘/documents/’,’/'的優先級最低,),會到/usr/local/tengine-2.3/baidu目錄下找index.html文件,而/baidu目錄下有index.html文件,所以會有返回

37 server {38 listen 80;39 server_name www.server1.com;51 location = /abc.html {52 root /usr/local/tengine-2.3/baidu;53 }54 location / {55 index index.html;56 root /usr/local/tengine-2.3/qq;57 }58 location /documents/ {59 root /usr/local/tengine-2.3/baidu;60 }61 location ^~ /images/ {62 root /usr/local/tengine-2.3/baidu;63 }64 location ~* \.(gif|jpg|jepg)$ {65 root /usr/local/tengine-2.3/baidu;66 }

3、index

該指令用于設置網站的默認首頁。

語法為:

index filename ...;

后面的文件名稱可以有多個,中間用空格隔開。

index index.html index.htm;

通常該指令有兩個作用:第一個是用戶在請求訪問網站時,請求地址可以不寫首頁名稱;第二個是可以對一個請求,根據請求內容而設置不同的首頁。

location / {root /usr/local/tengine-2.3/baidu;index index.html index.htm;}

案例3
訪問http://www.server1.com/index.html

訪問http://www.server1.com/index.htm

總結

以上是生活随笔為你收集整理的nginx.conf配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。

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