首頁  >  文章  >  運維  >  Nginx - 最小配置

Nginx - 最小配置

Linux中文社区
Linux中文社区轉載
2023-08-03 15:55:391323瀏覽

Nginx - 最小配置

安全伺服器是只允許所需數量的伺服器。理想情況下,我們將透過單獨啟用其他功能來基於最小系統建立伺服器。進行最少的配置也有助於調試。如果該錯誤在最小系統中不可用,則分別新增功能,然後繼續搜尋錯誤。

這是執行nginx所需的最低設定:

# /etc/nginx/nginx.confevents {}         # event context have to be defined to consider config validhttp { server {    listen 80;    server_name  javatpoint.co  www.javatpoint.co  *.javatpoint.co;    return 200 "Hello";  }

Root,Location和try_files指令

Root 指令

root指令用於設定請求的根目錄,從而允許nginx將傳入的請求對應到檔案系統上。

server {  listen 80;  server_name javatpoint.co;  root /var/www/javatpoint.co;}

它允許nginx根據請求返回伺服器內容:

javatpoint.co:80/index.html     # returns /var/www/learnfk.com/index.htmljavatpoint.co:80/foo/index.html # returns /var/www/learnfk.com/foo/index.html

Location指令

location指令用於根據請求的URI(統一資源標識符)來設定配置。

語法為:

location [modifier] path

範例:

location /foo {  # ...}

如果未指定修飾符,則將路徑視為前綴,之後可以跟隨任何內容。上面的範例將匹配:

/foo/fooo/foo123/foo/bar/index.html...

我們也可以在給定的上下文中使用多個location指令:

server {  listen 80;  server_name javatpoint.co;  root /var/www/javatpoint.co;  location/{    return 200 "root";  }  location /foo {    return 200 "foo";  }}javatpoint.co:80  /      # => "root"javatpoint.co:80   /foo    # => "foo"javatpoint.co:80   /foo123 # => "foo"javatpoint.co:80   /bar    # => "root"

Nginx也提供了一些可以與 location 指令結合使用的修飾符。

搜尋公眾號Linux中文社群後台回覆“私房菜”,獲取一份驚喜禮包。

修飾符已指派優先權:

=           - Exact match^~          - Preferential match~ && ~*     - Regex matchno modifier - Prefix match

首先,nginx將檢查所有精確匹配項。如果不存在,它將尋找優先選項。如果此匹配也失敗,則將依其出現順序測試正規表示式匹配。如果其他所有操作均失敗,則將使用最後一個前綴來匹配。

location /match {  return 200 'Prefix match: will match everything that starting with /match';}location ~* /match[0-9] {  return 200 'Case insensitive regex match';}location ~ /MATCH[0-9] {  return 200 'Case sensitive regex match';}location ^~ /match0 {  return 200 'Preferential match';}location = /match {  return 200 'Exact match';}/match     # => 'Exact match'/match0    # => 'Preferential match'/match1    # => 'Case insensitive regex match'/MATCH1    # => 'Case sensitive regex match'/match-abc # => 'Prefix match: matches everything that starting with /match'

try_files指令

該指令嘗試不同的路徑,並傳回找到的任何路徑。

try_files $uri index.html =404;

因此,/foo.html將嘗試按以下順序返回檔案:

$uri(/foo.html);index.html

如果未找到:404

如果我们在服务器上下文中定义try_files,然后定义查找所有请求的位置,则不会执行try_files。发生这种情况是因为服务器上下文中的try_files定义了其伪位置,该伪位置是可能的最低特定位置。因此,定义location/ 会比我们的伪位置更具体。

server {  try_files $uri /index.html =404;  location/{  }}

因此,我们应该避免在服务器上下文中使用try_files:

server {  location/{    try_files $uri /index.html =404;  }}

以上是Nginx - 最小配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Linux中文社区。如有侵權,請聯絡admin@php.cn刪除