Nginx學習總結(5) Nginx基本配置備忘

2022-07-20 19:18:12 字數 4093 閱讀 8471

在了解具體的nginx配置項之前我們需要對於nginx配置檔案的構成有所概念,一般來說,nginx配置檔案會由如下幾個部分構成:

# 全域性塊

...

# events塊

events

# http塊

# http全域性塊

...

}

在上述配置中我們可以看出,nginx配置檔案由以下幾個部分構成:

########### 每個指令必須有分號結束。#################

#user administrator administrators; #配置使用者或者組,預設為nobody nobody。

#worker_processes 2; #允許生成的程序數,預設為1

#pid /nginx/pid/nginx.pid; #指定nginx程序執行檔案存放位址

error_log log/error.log debug; #制定日誌路徑,級別。這個設定可以放入全域性塊,http塊,server塊,級別以此為:debug|info|notice|warn|error|crit|alert|emerg

error_page 404 #錯誤頁

#定義某個負載均衡伺服器

server

}}

本部分概述如何配置nginx進行靜態內容服務,nginx的靜態內容分發能力還是非常強大的。

listen 127.0.0.1 default_server accept_filter=dataready backlog=1024

# 支援多網域名稱配置

server_name www.barretlee.com barretlee.com;

# 支援泛網域名稱解析

server_name *.barretlee.com;

# 支援對於網域名稱的正則匹配

server_name ~^\.barret\.com$;

location = / 

location ^~ /images/

}location /

location /
location /blog 

location ~ ^/blog/(\d+)/([\w-]+)$

index /html/index.html /php/index.php;
error_page    404         /404.html;

error_page 502 503 /50x.html;

error_page 404 =200 /1x1.gif;

location /

location @fallback

try_files $uri $uri.html $uri/index.html @other;

location @other

location /

location ~* \.(?:ico|css|js|gif|jpe?g|png)$
我們也可以新增更複雜的配置項:

# 80埠配置,可配置多個virtual host

http.createserver((req, res) => ).listen(9000);任何請求過來都返回 hello world,簡版的 nginx 配置如下,

# node.js 在 9000 開了乙個監聽埠

proxy_pass

}# 上面處理出錯或者未找到的,返回對應狀態碼檔案

error_page 404 /404.html;

error_page 502 503 504 /50x.html;

}}首先 try_files,嘗試直接匹配檔案;沒找到就匹配靜態資源;還沒找到就交給 node 處理;否則就返回 4xx/5xx 的狀態碼。

}}let's encrypt 為我們提供了非常方便的命令列工具 certbot ,筆者是在ubuntu

16.04的機器上進行配置,因此只要執行如下命令即可:

# 安裝letsencrypt命令列

$ sudo apt-get install letsencrypt

# 獨立的為example.com與www.example.com申請證書

$ letsencrypt certonly --standalone -d example.com -d www.example.com

# 自動執行證書重新整理操作

$ letsencrypt renew --dry-run --agree-tos

基本的https支援配置如下:

server 開啟ssl支援  

ssl on;

#指定pem格式的證書檔案

ssl_certificate /etc/nginx/test.pem;

#指定pem格式的私鑰檔案

ssl_certificate_key /etc/nginx/test.key;

}

在真實的生產環境中,我們的配置如下:

}

server
利用error_page命令將497狀態碼的鏈結重定向到 https://

test.com 這個網域名稱上

server 開啟ssl支援  

ssl on;

#指定pem格式的證書檔案

ssl_certificate /etc/nginx/test.pem;

#指定pem格式的私鑰檔案

ssl_certificate_key /etc/nginx/test.key;

#讓http請求重定向到https請求

}

在http正常返回的頁面中新增meta屬性:

server   

#將404的頁面重定向到https的首頁

error_page 404

}

5 Nginx 效能優化

系統優化 cat etc sysctl.conf net.ipv4.tcp max syn backlog 65536 net.core.netdev max backlog 36768 net.core.somaxconn 36768 net.core.wmem default 8588608 n...

docker學習系列5 nginx 容器

本節通過學習 docker 的 nginx 映象,容器的使用。以及如何對映檔案。執行容器 docker run name my nginx d p 8088 80 rm nginx 1.15 d 在後台執行 p 容器的80埠對映到 宿主機的 8088 rm 容器停止執行後,自動刪除容器檔案 name...

docker學習系列5 nginx 容器

本節通過學習 docker 的 nginx 映象,容器的使用。以及如何對映檔案。執行容器 docker run name my nginx d p 8088 80 rm nginx 1.15 d 在後台執行 p 容器的80埠對映到 宿主機的 8088 rm 容器停止執行後,自動刪除容器檔案 name...