本文介紹的 Nginx 為開源版本 Nginx,官網地址為:https://nginx.org/en/,如需了解商業版本,可訪問商業官網:https://www.nginx-cn.net/;文中所使用到的軟體版本:nginx 1.22.1、pcre 8.43、opnessl 1.1.1s、CentOS 7.9.2009
1、簡介
nginx [engine x] 是一款 Http 和反向代理服務器、郵件代理服務器和通用TCP / UDP 代理服務器,其將源代碼以類 BSD 許可證的形式發布,因它的穩定性、豐富的功能集、簡單的組態檔和低系統資源的消耗而聞名,Nginx 可以在大多數 Unix Linux OS 上編譯運行,并有 Windows 移植版,
1.1、基本 Http 服務器特點
- 提供靜態和索引檔案服務,自動索引; 打開檔案描述符快取;
- 通過快取加速反向代理; 負載均衡和容錯;
- 通過快取 FastCGI、uwsgi、SCGI 和 服務器來提高訪問速度;負載均衡和容錯;
- 模塊化架構,過濾器包括 gzipping、位元組范圍、分塊回應、XSLT、SSI 和影像轉換過濾器,如果由代理服務器或 FastCGI/uwsgi/SCGI 服務器處理請求,單個頁面中的多個 SSI 可以并行處理;
- 支持SSL和TLS SNI;
- 支持基于權重和依賴的優先級的 HTTP/2,
1.2、其他 Http 服務器特點
- 基于名稱和 IP 的虛擬服務器;
- 支持 Keep-alive 和管線化連接;
- 訪問日志格式、緩沖日志寫入、快速日志輪換和 syslog 日志記錄;
- 3xx-5xx 錯誤代碼重定向;
- 重寫模塊:使用正則運算式更改 URI;
- 根據客戶端地址執行不同的功能;
- 基于客戶端 IP 地址、密碼(HTTP基本認證)和子請求結果的訪問控制;
- 驗證 HTTP Referer;
- PUT、DELETE、MKCOL、COPY 和 MOVE 方法;
- FLV 和 MP4 流媒體;
- 回應速率限制;
- 限制來自一個地址的并發連接或請求數量;
- 基于 IP 的地理位置;
- A/B 測驗;
- 請求鏡像;
- 嵌入式 Perl;
- njs 腳本語言,
1.3、郵件代理服務器特點
- 用戶通過外部 HTTP 身份驗證服務器重定向到 IMAP 或 POP3 服務器;
- 使用外部 HTTP 身份驗證服務器進行用戶身份驗證,并將連接重定向到內部 SMTP 服務器;
- 認證方法:
- POP3:USER/PASS、APOP、AUTH LOGIN/PLAIN/CRAM-MD5;
- IMAP:LOGIN、AUTH LOGIN/PLAIN/CRAM-MD5;
- SMTP:AUTH LOGIN/PLAIN/CRAM-MD5;
- SSL支持;
- STARTTLS 和 STLS支持,
1.4、TCP/UDP 代理服務器特點
通用 TCP 和 UDP 代理;
支持 SSL 和 TLS SNI 的 TCP;
負載均衡和容錯;
基于客戶端地址的訪問控制;
根據客戶端地址執行不同的功能;
限制來自一個地址的并發連接數量;
訪問日志格式,緩沖日志寫入,快速日志輪換和 syslog 日志記錄;
基于 IP 的地理位置;
A/B 測驗;
njs 腳本語言,
2、安裝
2.1、下載原始碼
nginx 原始碼:https://nginx.org/en/download.html
pcre 原始碼:http://www.pcre.org/
openssl 原始碼:https://www.openssl.org/source/
下載后解壓:
tar zxvf nginx-1.22.1.tar.gz unzip pcre-8.43.zip tar zxvf openssl-1.1.1s.tar.gz
2.2、編譯安裝
cd nginx-1.22.1 ./configure --prefix=/home/mongo/soft/nginx-1.22.1 --with-pcre=/home/mongo/installfile/pcre-8.43 --with-http_stub_status_module --with-http_ssl_module --with-openssl=/home/mongo/installfile/openssl-1.1.1s --with-mail --with-stream make make install
常用編譯引數說明:
| 引數 | 說明 | 默認值 |
| --help | 顯示幫助資訊 | |
--prefix=path |
設定 Nginx 的安裝目錄 | /usr/local/nginx |
--sbin-path=path |
設定 Nginx 可執行命令的目錄 | prefix/sbin/nginx |
--conf-path=path |
設定 Nginx 的組態檔 | prefix/conf/nginx.conf |
--error-log-path=path |
設定 Nginx 的錯誤日志檔案 | prefix/logs/error.log |
--pid-path=path |
設定 Nginx pid 檔案 | prefix/logs/nginx.pid |
--http-log-path=path |
設定 Http 訪問日志檔案 | prefix/logs/access.log |
| --with-http_ssl_module | 啟用 ssl 模塊 | |
| --with-mail --with-mail=dynamic |
啟用 POP3/IMAP4/SMTP 郵件代理服務 | |
--with-stream--with-stream=dynamic |
啟用 TCP/UDP 代理服務 | |
--with-pcre=path |
指定 pcre 原始碼的目錄 | |
--with-zlib=path |
指定 zlib 原始碼的目錄 | |
--with-openssl=path |
指定 openssl 原始碼的目錄 | |
| --with-http_stub_status_module | 啟用 Http 服務狀態模塊 |
更多引數說明可參考官網:https://nginx.org/en/docs/configure.html,
2.3、啟動
Nginx 默認配置了一個埠為 80 Http 服務器,使用普通用戶啟動需要修改該埠;編輯 conf/nginx.conf 檔案:
http { include mime.types; default_type application/octet-stream; ... server { listen 8080; ...
執行啟動命令:
sbin/nginx
啟動后訪問 8080 埠:

2.4、停止及重啟
sbin/nginx -s stop #停止
sbin/nginx -s reload #重啟
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/550957.html
標籤:其他
上一篇:Vulnhub之 BoredHackerBlog: Social Network 2.0靶機詳細測驗程序
下一篇:返回列表
