nginx筆記(一)

来源:https://www.cnblogs.com/xiwang6428/archive/2020/04/21/12739654.html
-Advertisement-
Play Games

一、nginx版本 開源版本主要有: mainline--含最新特性和及時的bug修複,以及一些試驗性的組件和一些新bug; stable--不含最新特性,但含有重要的bug修複並跟隨移植到相關的mainline版本。推薦生產環境使用。 二、安裝方式: (1)使用預編譯的二進位包:此種方式最快捷; ...


一、nginx版本

開源版本主要有:

mainline--含最新特性和及時的bug修複,以及一些試驗性的組件和一些新bug;

stable--不含最新特性,但含有重要的bug修複並跟隨移植到相關的mainline版本。推薦生產環境使用。

二、安裝方式:

(1)使用預編譯的二進位包:此種方式最快捷;

(2)通過源碼編譯成二進位包:最複雜,但能個性化;

 

通過預編譯的二進位包(以CentOS為例):

支持的系統版本有:

VersionSupported Platforms
6.x x86_64, i386
7.4+ x86_64, ppc64le
8.x x86_64

 

 獲取預編譯二進位包方式:
預設通過repository庫,這是最快的方式,但提供的包一般是舊版本:

sudo yum install epel-release  #安裝epel包

yum update  #更新repository

yum install nginx  #安裝nginx

sudo nginx -v    #驗證安裝
nginx version: nginx/1.6.3

 

如果從官方nginx.org獲取,則首先用yum設置官方庫,這樣能獲取最新的安裝包。

vi /etc/yum.repos.d/nginx.repo  #編輯庫來源文件

#添加以下nginx.repo

[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/<OS>/<OSRELEASE>/$basearch/
gpgcheck=0
enabled=1

#mainline元素表示從mainline獲取最新版本,需要stable版本則刪除此元素。
#<OS>:填寫rhel或者centos
#<OSRELEASE>: 操作系統版本號(6, 6._x_, 7, 7._x_ and so on)

#退出vi, 保存。

yum update   #更新repo
yum install nginx  #安裝nginx
$ curl -I 127.0.0.1   #驗證安裝
HTTP/1.1 200 OK
Server: nginx/1.13.8

 

 

 從源碼編譯和安裝:

在編譯nginx源碼之前,需要先安裝獨立的運行庫:

RCRE:用於支持正則表達式,nignx Core和Rewrite組件需要它。

$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.44.tar.gz
$ tar -zxf pcre-8.44.tar.gz
$ cd pcre-8.44
$ ./configure
$ make
$ sudo make install

 

zlib:支持頭部信息壓縮,nginx Gzip組件需要它。

$ wget http://zlib.net/zlib-1.2.11.tar.gz
$ tar -zxf zlib-1.2.11.tar.gz
$ cd zlib-1.2.11
$ ./configure
$ make
$ sudo make install

 

OpenSSL:支持https協議,nginx SSL和其它組件需要它。

$ wget http://www.openssl.org/source/openssl-1.1.1d.tar.gz
$ tar -zxf openssl-1.1.1d.tar.gz
$ cd openssl-1.1.1d
$ ./Configure darwin64-x86_64-cc --prefix=/usr
$ make
$ sudo make install

 

下載源碼:

#下載主線版本:
$ wget https://nginx.org/download/nginx-1.17.9.tar.gz
$ tar zxf nginx-1.17.9.tar.gz
$ cd nginx-1.17.9

#下載穩定版本:
$ wget https://nginx.org/download/nginx-1.16.1.tar.gz
$ tar zxf nginx-1.16.1.tar.gz
$ cd nginx-1.16.1

 

配置編譯選項:

$ ./configure

 

 具體的編譯選項,參考官網:https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/?_ga=2.20119100.529167744.1587292980-45792041.1587182428#configuring-the-build-options

 

編譯安裝:

$ make
$ sudo make install

 

完成安裝後啟動:

sudo nginx

 

 

三、nginx進程

nginx進程包含:一個主進程、一或多個工作進程。如果啟用緩存還會出現緩存載入進程和緩存管理器進程。

主進程作用:讀取和測試配置文件有效性、維護工作進程;

工作進程作用:對請求進行實際的相應處理,並通過 OS機制分配請求給相應的工作進程。

 

控制nginx基本操作:

nginx -s <signal>

 

<signal>為:

quit--優雅地關閉nginx

reload--重載配置文件

reopen--重新打開日誌

stop--立即關閉nginx

 

四、nginx配置文件

配置文件:

預設文件名為nginx.conf,開源版Nginx的配置文件由安裝時決定其位置,一般在以下位置:

/usr/local/nginx/conf; /usr/local/etc/nginx; /etc/nginx

指令:

配置文件由一定數量的“指令”及其參數組成;單行指令以分號結尾,而相關指令組合在一起用{}括弧圍住,稱為“塊”。

配置文件分類:

為了更方便維護,可以將明確一類功能的配置分開文件存放,推薦存放在/etc/nginx/conf.d文件夾內,併在主nginx.conf配置中加入:

include conf.d/http;
include conf.d/stream;
include conf.d/exchange-enhanced;

 

語境:

以下是一些頂級的指令,稱之為”context"(語境、上下文),這些指令將應用於下麵描述的各種流量類型:

events--常規連接處理

http--HTTP流量

mail--Mail流量

stream--TCP和UDP流量

虛擬伺服器:

   以每種流量處理語境中,你可以定義一個或多個 server 指令塊來處理各種請求。

   在HTTP流量中(即http語境內),每個server指令塊用於處理通過IP或功能變數名稱傳輸過來的請求。而location指令塊定義在server指令塊內用於處理特定的URI。

   對於TCP/UDP和mail語境(即steam和mail指令),server指令用於處理指定TCP埠或UNIX socket的流量。

繼承:

    通常情況下,子指令會繼承包含它的父指令的設置值,當然也可以在子指令中重定義設置來覆蓋父指令設置值。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上一篇文章我給大家講述瞭如何更純凈更安全的 "重裝並激活系統" ,那麼接下來的系列文章將會教大家如何去優化你自己的電腦。首先我們從基本的驅動開始說起。 更多精彩文章請關註公眾號『大海的BLOG』 首先說說什麼是驅動? 關於驅動你應該知道的: 定義:驅動程式即添加到操作系統中的一小塊代碼,其中包含有關 ...
  • 對於剛剛DIY好一臺電腦或者對於目前所用windows系統版本不太滿意的人來說,下載一個官方、純凈的系統鏡像是至關重要的!下麵就來看看如何實現這些操作吧。(所有操作均以Win10為例) 更多精彩文章請關註公眾號『大海的BLOG』 首先說說為什麼官方的系統受人推崇吧: 首先說說第三方系統鏡像: 第一: ...
  • [TOC] 1.docker容器的網路原理圖 2.運行容器為什麼要使用埠映射? 3.docker運行容器埠映射的方法 4.docker自動添加的iptable規則 ...
  • [TOC] 1.docker容器的核心理念 2.運行一個容器 3.docker其他常用命令 3.1.停止容器 3.2.殺死容器 3.3.查看容器列表 3.4.刪除容器 3.5.批量刪除容器 docker rm f 進入容器的目的:排錯,調試 進入容器的方法: docker exec [OPTIONS ...
  • 看第21章時,介紹到瞭解析命令行的神器 getopt,瞭解了 linux 下處理通用命令行的方法。 命令行可分為參數與選項,其中不帶 - 或 -- 首碼的為參數,對一個命令而言數量是固定的,多個參數之間的順序也是固定的(不然命令沒法區分);而選項就是帶 - 或 -- 首碼的,可有可沒有的,由用戶的輸 ...
  • 我們在工作的過程中,有時候會利用源碼包安裝軟體。雖然相對於二進位軟體包,配置和編譯起來繁瑣點,但是它的可移植性卻好得多。 ...
  • 已允許遠程連接 遠程服務已啟動 能ping通 但就是連不上,原因何在? 如果關閉防火牆,你會發現連上了。 在防火牆 》高級設置 》入站規則 里,有如下兩項: 遠程桌面(TCP-In) 公用 已啟用(否) 遠程桌面(TCP-In) 域 專用 已啟用(是) 所連WiFi為歸為公用網路 只需開啟防火牆,啟 ...
  • 1、ls命令 就是 list 的縮寫,通過 ls 命令不僅可以查看 linux 文件夾包含的文件,而且可以查看文件許可權(包括目錄、文件夾、文件許可權)查看目錄信息等等。 常用參數搭配: ls -a 列出目錄所有文件,包含以.開始的隱藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...