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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx从入门到精通

發布時間:2023/12/20 Nginx 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx从入门到精通 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • Nginx介紹
    • 一、Nginx介紹
    • 二、為什么選擇Nginx
    • 三、Nginx和Apache對比
  • Nginx安裝部署
    • 一、nginx源碼下載
    • 二、nginx安裝
    • 三、nginx相關目錄
    • 四、nginx啟動管理
    • 五、nginx啟動測試
  • 默認網站
    • 一、默認網站
    • 二、訪問控制
    • 三、登陸驗證
    • 四、日志管理
    • 五、防盜鏈
  • 虛擬主機
    • 一、虛擬主機介紹
    • 二、基于IP的虛擬主機
        • 基于IP的虛擬主機特點
    • 三、基于端口的虛擬主機
        • 基于端口的虛擬主機特點
    • 四、基于域名的虛擬主機
        • 基于域名的虛擬主機特點

Nginx介紹

一、Nginx介紹

Nginx(“engine x”)是一款是由俄羅斯的程序設計師Igor Sysoev所開發高性能的 Web和 反向代理服務器,也是一個 IMAP/POP3/SMTP 代理服務器。和apache一樣,都是web服務器軟件,因為其性能優異,所以被廣大運維喜歡。又因為nginx是一個輕量級的web服務器,相比apache來說資源消耗更低

延伸版本:tengine(淘寶)、openresrt(章亦春)等

  • http://nginx.org 官網
  • http://www.nginx.cn/doc/index.html 中文文檔

二、為什么選擇Nginx

Nginx 是一個高性能的 Web 和反向代理服務器, 它具有有很多非常優越的特性:

作為 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的并發連接,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。能夠支持高達 50,000 個并發連接數的響應,感謝 Nginx 為我們選擇了 epoll and kqueue 作為開發模型.

作為負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP,也可以支持作為 HTTP代理服務器 對外進行服務。Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。

作為郵件代理服務器: Nginx 同時也是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作為郵件代理服務器),Last.fm 描述了成功并且美妙的使用經驗。

Nginx 安裝非常的簡單,配置文件 非常簡潔(還能夠支持perl語法),Bugs非常少的服務器: Nginx 啟動特別容易,并且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在 不間斷服務的情況下進行軟件版本的升級。

三、Nginx和Apache對比

  • 靜態文件處理能力:nginx高于apache
  • 資源消耗:nginx優于apache,因為nginx是異步處理模型,只需要幾個進程就能夠處理大量在線請求,而apache 2.4仍然是進程模型或者線程模型,即仍然采用大量線程來處理大量在線請求。
  • Apache支持的模塊很多,而且也比較穩定。而nginx由于出現的比較晚,所以在這方面可能比不上Apache。
  • nginx本身就是一個反向代理服務器,而且支持7層負載均衡。
  • nginx處理動態頁面很雞肋,一般只用與處理靜態頁面和反向代理。

Nginx安裝部署

一、nginx源碼下載

官網:http://nginx.org/

源碼包:nginx-1.19.3.tar.gz

源碼包下載:wget http://nginx.org/download/nginx-1.19.3.tar.gz -P /usr/src

二、nginx安裝

2.1、下載nginx源碼包 [root@zutuanxue ~]# wget http://nginx.org/download/nginx-1.19.3.tar.gz -P /usr/src [root@zutuanxue src]# cd /usr/src2.2、安裝nginx依賴包 [root@zutuanxue ~]# yum -y install gcc pcre-devel zlib-devel- gcc: 源碼編譯工具 - pcre-devel: nginx url_rewrite 功能提供包 - zlib-devel: nginx 壓縮功能提供包 2.3、解壓nginx源碼,并進入源碼包 [root@zutuanxue src]# tar xf nginx-1.19.3.tar.gz [root@zutuanxue src]# cd nginx-1.19.32.4、配置nginx源碼[root@zutuanxue nginx-1.19.3]# ./configure --prefix=/usr/local/nginx配置目的:1)檢查環境 是否 滿足安裝條件 依賴解決2)指定安裝方式 配置文件 命令文件 各種文件放哪里 開啟模塊功能【內置模塊 三方模塊】3)指定軟件安裝在那里2.5、編譯nginx源碼 [root@zutuanxue nginx-1.19.3]# make -j42.6、安裝nginx [root@zutuanxue nginx-1.19.3]# make install

三、nginx相關目錄

nginx path prefix: “/usr/local/nginx”nginx binary file: “/usr/local/nginx/sbin/nginx”nginx modules path: “/usr/local/nginx/modules”nginx configuration prefix: “/usr/local/nginx/conf”nginx configuration file: “/usr/local/nginx/conf/nginx.conf”nginx pid file: “/usr/local/nginx/logs/nginx.pid”nginx error log file: “/usr/local/nginx/logs/error.log”nginx http access log file: “/usr/local/nginx/logs/access.log”

四、nginx啟動管理

配置文件測試:/usr/local/nginx/sbin/nginx -t

Nginx啟動:/usr/local/nginx/sbin/nginx

Nginx關閉:killall –s QUIT nginx

五、nginx啟動測試

nginx安裝完畢,接下來就可以啟動nginx了,nginx啟動后如何測試nginx的啟動狀態呢?可以通過以下三種方式去測試,這個可以根據自己的習慣選擇一種測試就行了。

  • 使用netsata命令查看啟動端口
    [root@zutuanxue ~]# netstat –ntpl
  • 使用losf命令查看啟動端口
    [root@zutuanxue ~]# lsof -i :80
  • 使用文本瀏覽器訪問nginx默認網站
    [root@zutuanxue ~]# elinks http://IP
    測試內容:

默認網站

一、默認網站

server {listen 80;server_name localhost;location / {root html;index index.html index.htm;#支持目錄瀏覽autoindex on;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}

二、訪問控制

location /a {autoindex on;allow 192.168.12.0/24;deny all;#基于客戶端IP做過濾,符合條件的允許訪問,不符合的返回404;if ( $remote_addr !~ "192.168.12" ) {#return 404;return http://book.ayitula.com;}}

三、登陸驗證

location /c {auth_basic "登陸驗證";auth_basic_user_file /etc/nginx/htpasswd;}

四、日志管理

Nginx訪問日志主要有兩個參數控制

log_format #用來定義記錄日志的格式(可以定義多種日志格式,取不同名字即可)

access_log #用來指定日至文件的路徑及使用的何種日志格式記錄日志

access_log logs/access.log main;

log_format格式變量:$remote_addr #記錄訪問網站的客戶端地址$remote_user #遠程客戶端用戶名$time_local #記錄訪問時間與時區$request #用戶的http請求起始行信息$status #http狀態碼,記錄請求返回的狀態碼,例如:200、301、404等$body_bytes_sent #服務器發送給客戶端的響應body字節數$http_referer #記錄此次請求是從哪個連接訪問過來的,可以根據該參數進行防盜鏈設置。$http_user_agent #記錄客戶端訪問信息,例如:瀏覽器、手機客戶端等$http_x_forwarded_for #當前端有代理服務器時,設置web節點記錄客戶端地址的配置,此參數生效的前提是代理服務器也要進行相關的x_forwarded_for設置

自定義一個json格式的訪問日志

log_format main_json '{"@timestamp":"$time_local",' '"client_ip": "$remote_addr",' '"request": "$request",' '"status": "$status",' '"bytes": "$body_bytes_sent",' '"x_forwarded": "$http_x_forwarded_for",' '"referer": "$http_referer"' '}'; access_log logs/access_json.log main_json;

日志截斷

mv access.log access.log.0killall -USR1 \`cat master.nginx.pid\`sleep 1gzip access.log.0

五、防盜鏈

location /images/ { alias /data/images/; valid_referers none blocked *.ayitula.com;if ($invalid_referer) {rewrite ^/ http://www.ayitula.com/daolian.gif;#return 403;} }

虛擬主機

一、虛擬主機介紹

虛擬主機 就是把一臺物理服務器劃分成多個“虛擬”的服務器,每一個虛擬主機都可以有獨立的域名和獨立的目錄,可以獨立發布一個網站。

實驗案例: 同時發布兩個網站:

  • DocumentRoot /usr/local/nginx/html/web1
  • DocumentRoot /usr/local/nginx/html/web2

二、基于IP的虛擬主機

應用場景:IP充足的環境,每個網站需要一個IP地址

server {listen 192.168.11.251:80;location / {root html/web1;index index.html index.htm index.php;} } server {listen 192.168.11.252:80; location / {root html/web2;index index.html index.htm;} }

基于IP的虛擬主機特點

  • 不同IP對應不同網站
  • 訪問方便,用戶直接使用默認端口即可訪問
  • 服務器需要有多個IP地址(一個公網IP大概一年的費用是600左右)
  • 維護方便,基于獨立IP的站點,便于監控、維護。

三、基于端口的虛擬主機

應用場景:IP不足的環境

  • 優點: 多個網站發布使用該配置方法只需要一個IP,節省IP地址
  • 缺點 端口你是無法告訴公網用戶,無法適用于公網客戶,適合內部用戶
基于端口 server {listen 80;#server_name www.zutuanxue.com;location / {root html/web1;index index.html index.htm index.php;} } server {listen 8080;#server_name www.zutuanxue.com;location / {root html/web2;index index.html index.htm;} }

基于端口的虛擬主機特點

  • 不同端口對應不同網站
  • 訪問需要加端口
  • 節省IP地址
  • 適合私網運行

四、基于域名的虛擬主機

應用場景:一個網站需要有一個域名,目前公網發布網站的首選

基于域名 server {listen 80;server_name web1.zutuanxue.com;location / {root html/web1;index index.html index.htm index.php;} }server {listen 80;server_name web2.zutuanxue.com;location / {root html/web2;index index.html index.htm;} }

基于域名的虛擬主機特點

  • 不同域名對應不同網站
  • 需要多個域名 可以是二級或三級域名
  • 每個站點使用默認端口,方便用戶訪問
  • 只需要一個IP地址,節約成本
  • 適合公網環境

總結

以上是生活随笔為你收集整理的Nginx从入门到精通的全部內容,希望文章能夠幫你解決所遇到的問題。

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