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

歡迎訪問 生活随笔!

生活随笔

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

Nginx

Nginx----基础

發布時間:2023/12/10 Nginx 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx----基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

靜態資源服務

  通過本地文件系統提供服務:對css,js文件,圖片等靜態文件

反向代理服務

  緩存:將一些數據經常不變的,緩存到Nginx中,直接給用戶提供服務

  負載均衡

api服務

  OpenResty

  數據庫的服務比較簡單,tps和并發遠遠高于應用服務,所有Nginx可以直接訪問數據庫提高性能

  利用nginx強大的并發性能,實現web防火墻等復雜的業務功能;

Nginx優點

高并發,高性能:對每一個連接使用的內存盡量少

可擴展性好:nginx模塊化非常穩定使得Nginx第三方模塊生態圈豐富。

高可靠性:運行時間長,不需要經常重啟服務器

熱部署:不停止服務下,升級Nginx

BSD許可證:可以修改源代碼運行在商業的服務器上是合法的

Nginx組成

  nginx二進制可執行文件:由各個模塊編譯出的文件

  nginx.conf:配置文件

  access.log:記錄每一條http請求信息

  error.log:錯誤消息

?

Nginx各版本

開源版:nginx.org
商業版:nginx.com(不開源)

?

?

阿里巴巴的Tengine

  Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。
從2011年12月開始,Tengine成為一個開源項目,Tengine團隊在積極地開發和維護著它。Tengine團隊的核心成員來自于淘寶、搜狗等互聯網企業。

缺點:沒有辦法根據nginx的官方版本同步升級

OpenResty

  OpenResty(也稱為 ngx_openresty)是一個全功能的 Web 應用服務器。它打包了標準的 Nginx 核心,很多的常用的第三方模塊,以及它們的大多數依賴項。

  開源OpenResty:http://openresty.org

  商業版OpenResty:https://openresty.com

?

下載Nginx

windows

  直接在官網上下載windows版本即可,安裝的目錄不要帶有中文,否則啟動nginx會報錯,可以直接運行

linux

  首先linux可能需要安裝其他的模塊(nginx中gzip模塊需要zlib庫,rewrite模塊需要pcre庫,ssl功能需要openssl庫),如果需要的時候可以來下載...

  參考https://www.cnblogs.com/woniusky/p/11050499.html

1、nginx下載

wget http://nginx.org/download/nginx-1.16.1.tar.gz

2、編譯和安裝

參考官方文檔:http://nginx.org/en/docs/configure.html

./configure ---prefix=/usr/local/nginx/ 可以指定其他的,不指定就是默認值,執行完成后,會生成objs目錄 make 可以在objs目錄下看到一個nginx文件,這個文件是為了在版本升級時,不能進行make install,需要將該(nginx)copy到prefix安裝目錄中sbin目錄下 make install 安裝完成之后,可以去prefix指定的目錄中查看安裝后的文件

基本使用

1、Nginx命令行

格式:nginx -s reload 幫助:-?-h 使用指定的配置文件:-c 指定運行目錄:-p 發送信號:-s 測試配置文件是否有語法錯誤:-t -T 打印nginx的版本信息、編譯信息等:-v -V

2、常用命令

./nginx //啟動,如果啟動后訪問不了,看看是不是防火墻禁止了端口(nginx默認監聽80端口) ./nginx -s reload //重載配置文件,在sbin目錄下(如果我們修改了配置文件中的配置(我們安裝nginx的目錄中的conf),我們希望立刻生效,但是不會重啟nginx) ./nginx -s stop //關閉

?

firewall-cmd --list-all :查看防火墻開放的端口

  

?

?添加對外開放的端口

sudo firewall-cmd --add-port=80/tcp --permanent firewall-cmd -reload 重啟防火墻

3、熱部署

  當我們的nginx處于運行狀態,我們需要對他進行版本升級

  我們可以將sbin目錄中的nginx執行二進制文件備份一下

cp nginx nginx.old

  編譯好最新的nginx二進制文件去替換sbin目錄下的nginx文件(在objs目錄中有我們編譯好的nginx,用它來替換sbin目錄中nginx)

?  給正在運行的nginx master進程發送一個信號,我們需要版本升級了

    ps-ef I grep nginx

    kill -USR2 13195:此時會新啟動一個nginx master進程

    kill -WINCH 13195:關閉老的進程,此時的worker process關閉了,但是master process沒有關閉是為了如果新版本有問題,方便我們回退版本

?

4、日志切割

可以寫一個腳本,每隔一段時間進行切割日志

#!/bin/bash #Rotate the Nginx logs to prevent a single logfile from consuming too much disk space. LOGS_PATH=/usr/Local/openresty/nginx/logs/history CUR_LOGS_PATH=/usr/Local/openresty/nginx/logs YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) mv ${CUR_LOGS PATH}/taohui_access.1og ${LOGS_PATH}/taohui_access_${YESTERDAY}.1og mv ${CUR_LOGS_PATH}/maomaoxiong_access.1og ${L0GS_PATH}/maomaoxiong_access_${YESTERDAY}.1og mv ${CUR_LOGS_PATH}/error.1og ${LOGS_PATH}/error_${YESTERDAY}.1og ##向Nginx主進程發送USR1信號。USR1信號是重新打開日志文件,1是數字1 kil1-USR1 $(cat /usr/Local/openresty/nginx/Logs/nginx.pid)

?

4、nginx配置文件詳細

event之前的部分:全局塊,從配置文件開始到events塊之間的內容,主要會設置一些影響nginx服務器整體運行的配置指令

event:events 涉及的指令主要影的 Nginx 服務器與用戶的網絡連接

http塊

  http全局塊:配置的指令包括文件引入、MIME-TYPE定義、日志自定義、連接超時時間、單鏈接請求數上限等。

  server塊:這塊和虛擬主機有密切關系,虛擬主機從用戶角度看,和一臺獨立的硬件主機是完全一樣的,該技術的產生是為了節省互聯網服務器硬件成本。

  location塊:這塊的主要作用是基于Nginx 服務器接收到的請求字符串(例如 server_name/uri-string),對虛擬主機名稱(也可以是IP別名)之外的字符串(例如前面的/uri-string)進行匹配,對特定的請求進行處理。地址定向、數據緩存和應答控制等功能,還有許多第三方模塊的配置也在這里進行。

    localtion語法說明

location [=|~|~*|^~] uri{}

  1、=:用于不含正則表達式的uri前,要求請求字符串與uri嚴格匹配,如果匹配成功,就停止繼續向下搜索并立即處理該請求。
  2、~:用于表示uri包含正則表達式,并且區分大小寫。
  3、~*:用于表示uri包含正則表達式,并且不區分大小寫。
  4、^~:用于不含正則表達式的 uri前,要求Nginx 服務器找到標識uri和請求字

########### 每個指令必須有分號結束。################# #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 events {accept_mutex on; #設置網路連接序列化,防止驚群現象發生,默認為onmulti_accept on; #設置一個進程是否同時接受多個網絡連接,默認為off#use epoll; #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventportworker_connections 1024; #最大連接數 http {include mime.types; #文件擴展名與文件類型映射表default_type application/octet-stream; #默認文件類型,默認為text/plain#access_log off; #取消服務日志 log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定義格式access_log log/access.log myFormat; #combined為日志格式的默認值sendfile on; #允許sendfile方式傳輸文件,默認為off,可以在http塊,server塊,location塊。sendfile_max_chunk 100k; #每個進程每次調用傳輸數量不能大于設定的值,默認為0,即不設上限。keepalive_timeout 65; #連接超時時間,默認為75s,可以在http,server,location塊。upstream mysvr { server 127.0.0.1:7878;server 192.168.10.121:3333 backup; #熱備}error_page 404 https://www.baidu.com; #錯誤頁server {keepalive_requests 120; #單連接請求上限次數。listen 4545; #監聽端口server_name 127.0.0.1; #監聽地址 location ~*^.+$ { #請求的url過濾,正則匹配,~為區分大小寫,~*為不區分大小寫。#root path; #根目錄#index vv.txt; #設置默認頁proxy_pass http://mysvr; #請求轉向mysvr 定義的服務器列表deny 127.0.0.1; #拒絕的ipallow 172.18.5.54; #允許的ip } } }

?

轉載于:https://www.cnblogs.com/yanxiaoge/p/11535673.html

總結

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

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