linux---Nginx詳細教程(包含安裝,網站部署)

Nginx是一個高性能的HTTP和反向代理服務器,也可以用作郵件代理服務器,其以占有內存少、并發能力強、穩定性高、豐富的功能集、低系統資源消耗而聞名。以下是對Nginx的詳細教程:

一、Nginx簡介

Nginx由俄羅斯人開發,第一個公開版本0.1.0發布于2004年10月4日。其源代碼以類BSD許可證的形式發布,特點是占有內存少、并發能力強,官方的并發量最高可達5w/s,在整個web應用程序的生產環境使用率中名列前茅。

二、Nginx的功能

  1. 負載均衡:Nginx支持多種負載均衡算法,如輪詢、最少連接、IP哈希等,可以靈活地分配流量至多個后端服務器,提高網站訪問速度和穩定性。
  2. 反向代理:Nginx中的反向代理是一個非常常見的功能,它可以作為客戶端和后端服務器之間的中介,將客戶端請求轉發到一個或多個后端服務器上,隱藏后端服務器的真實IP,提高網站安全性。
  3. Web服務器:Nginx可以高效處理靜態資源,如HTML、CSS、JS、圖片等,適合作為Web服務器。
  4. 動靜分離:動靜分離的基本思想是將靜態資源請求(如圖片、CSS、JS等)直接由Nginx處理,而將動態請求(如API調用、表單提交等)轉發給后端服務器處理。通過Nginx的動靜分離,可以減輕后端服務器的壓力,并更好地利用緩存,提高靜態資源的加載效率。

三、Nginx的安裝與配置

使用YUM包管理器安裝Nginx:

yum install -y nginx

使用APT包管理器安裝Nginx:

apt install -y nginx

源碼編譯安裝Nginx:

  1. 安裝編譯工具及庫文件
    • 安裝GCC編譯器:GCC是一個開源的編譯器集合,用于處理各種各樣的語言,其中就包含了C語言。使用命令yum install -y gcc來安裝,安裝成功后,可以通過gcc --version來查看是否安裝成功。
    • 安裝PCRE庫:PCRE(Perl Compatible Regular Expression)兼容正則表達式庫,Nginx的Rewrite模塊和http核心模塊都會使用到PCRE正則表達式語法。使用命令yum install -y pcre pcre-devel來進行安裝,安裝成功后,可以通過rpm -qa pcre pcre-devel來查看是否安裝成功。
    • 安裝zlib庫:zlib庫提供了開發人員的壓縮算法,Nginx的各個模塊中需要使用gzip壓縮,所以也需要提前安裝zlib庫及源代碼zlib和zlib-devel。使用命令yum install -y zlib zlib-devel來進行安裝,安裝成功后,可以通過rpm -qa zlib zlib-devel來查看是否安裝成功。
    • 安裝OpenSSL庫:OpenSSL是一個開放源代碼的軟件庫包,應用程序可以使用這個包進行安全通信,并且避免被竊聽。在Nginx中,如果服務器需要提供安全網頁時就需要用到OpenSSL庫。使用命令yum install -y openssl openssl-devel來進行安裝,安裝成功后,可以通過rpm -qa openssl openssl-devel來查看是否安裝成功。
  2. Nginx的源碼安裝
    • 進入Nginx官網查找需要下載版本的鏈接地址,然后使用wget命令進行下載。
    • 解壓縮下載的安裝包。
    • 進入安裝包目錄,執行./configure命令進行配置,指定Nginx的安裝路徑、模塊等。
    • 執行make命令進行編譯。
    • 執行make install命令進行安裝。
    • 運行Nginx,可以通過命令./nginx啟動Nginx服務。
  3. Nginx的配置文件
    • Nginx的配置文件通常位于/etc/nginx/nginx.conf,也可以通過Nginx安裝時的--conf-path參數指定。
    • 配置文件由多層塊組成,包括主配置塊、HTTP塊、Server塊和Location塊。
    • 在配置文件中,可以設置Nginx的全局參數、HTTP相關的參數、虛擬主機的參數以及URL路徑的具體行為等。
  4. Nginx的啟動、停止、重啟和狀態查看
    • 啟動Nginx:使用命令systemctl start nginx./nginx(在Nginx的安裝目錄下)。
    • 停止Nginx:使用命令systemctl stop nginx./nginx -s quit(在Nginx的安裝目錄下)。
    • 重啟Nginx:使用命令systemctl restart nginx./nginx -s reload(在Nginx的安裝目錄下,實現平滑重啟)。
    • 查看Nginx狀態:使用命令systemctl status nginx

更詳細源碼編譯教程可以參考linux—Nginx源碼安裝

四、Nginx的應用場景

  1. 靜態資源服務器:Nginx可以作為靜態資源服務器,用于加速圖片、CSS、JS等文件的上傳和下載。
  2. 負載均衡:Nginx可實現負載均衡,將請求分發到多臺后端服務器,提高網站訪問速度和穩定性。
  3. 反向代理:Nginx可作為反向代理服務器,隱藏后端服務器的真實IP地址,提高網站的安全性。
  4. 緩存加速:Nginx可通過緩存靜態資源,減少后端服務器的壓力,提高網站訪問速度。

五、Nginx的優缺點

  1. 優點
    • 輕量級,相對Apache占用更少的資源。
    • 因為Nginx是非阻塞異步網絡IO模型(epoll),高并發下能保持低資源低消耗,因此更適合做高并發(Apache采用的是select模型/線型輪詢)。
    • 處理靜態網頁上表現的更好(簡單、占資源少)。
    • 反向代理、負載均衡性能更強。
    • 可對后端服務器進行健康狀態檢查。
    • 支持網站緩存(加速網頁訪問)。
  2. 缺點
    • 在處理動態請求時,性能可能不如Apache(動態請求會用到偽靜態,而Apache對rewrite支持的更好)。
    • rewrite模塊沒有Apache完善。

六、搭配網站

1.在/etc/nginx/conf.d目錄下創建配置文件

vim /etc/nginx/conf.d/nginx.conf

2.添加下面代碼(根據自己需求修改)

# 定義一個server塊,用于配置一個虛擬主機(HTTP)
server {# 監聽80端口,這是HTTP協議的默認端口listen 80;# 設置虛擬主機的域名,這里是xxxx.comserver_name xxxx.com;# 重定向所有HTTP請求到HTTPSreturn 301 https://$host$request_uri;
}# 定義一個server塊,用于配置一個虛擬主機(HTTPS)
server {# 監聽443端口,這是HTTPS協議的默認端口listen 443 ssl;# 設置虛擬主機的域名,與HTTP部分相同server_name xxxx.com;# 指定SSL證書和私鑰文件的路徑ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private.key;# 可選的:指定SSL證書鏈(如果您的證書由中間CA簽發)# ssl_trusted_certificate /path/to/your/chain.crt;# SSL會話參數配置ssl_session_timeout 1d;ssl_session_cache shared:SSL:50m;ssl_session_tickets off; # 對于舊版Nginx,可能需要設置為on以支持會話票據# 現代加密套件和協議配置ssl_protocols TLSv1.2 TLSv1.3; # 僅啟用TLS 1.2和1.3ssl_ciphers HIGH:!aNULL:!MD5; # 使用高強度的加密算法ssl_prefer_server_ciphers on; # 優先使用服務器端的加密算法配置# HSTS(HTTP Strict Transport Security)配置,強制瀏覽器使用HTTPSadd_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";# 指定靜態文件的根目錄root /home/www/dist;# 配置請求的路由處理location / {index index.html;try_files $uri $uri/ /index.html;}# 配置訪問日志access_log /var/log/nginx/xiao.com_access.log main;# 配置錯誤日志error_log /var/log/nginx/xiao.com_error.log error;# 配置錯誤頁面的處理error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}
}

3.檢查

nginx -t

4.重啟服務

systemctl reload nginx.service 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65943.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65943.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65943.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RNN之:LSTM 長短期記憶模型-結構-理論詳解-及實戰(Matlab向)

0.前言 遞歸!循環神經網絡Recurrent Neural Network 循環神經網絡(又稱遞歸神經網絡,Recurrent Neural Network,RNN)。是一種用于處理序列數據的神經網絡結構,具有記憶功能,能夠捕捉序列中的時…

泛目錄和泛站有什么差別

啥是 SEO 泛目錄? 咱先來說說 SEO 泛目錄是啥。想象一下,你有一個巨大的圖書館,里面的書架上擺滿了各種各樣的書,每一本書都代表著一個網頁。而 SEO 泛目錄呢,就像是一個超級圖書管理員,它的任務就是把這些…

初識@ffmpeg/ffmpeg庫

前言 FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并且能夠利用它們來創建一個新的流媒體格式的自由軟件項目,它被廣泛應用在視頻處理、音頻處理以及直播領域。其中,@ffmpeg/ffmpeg 是一個將 FFmpeg 編譯為 WebAssembly(WASM)的庫,可支持幾乎所有的音視頻格式。 安裝…

【圖像去噪】論文復現:反向擴散中加入MAP將擴散模型從高斯去噪推廣到真實去噪!DiffusionVI的Pytorch源碼復現,跑通源碼,梳理理論,單卡可執行!

請先看【專欄介紹文章】:【圖像去噪(Image Denoising)】關于【圖像去噪】專欄的相關說明,包含適配人群、專欄簡介、專欄亮點、閱讀方法、定價理由、品質承諾、關于更新、去噪概述、文章目錄、資料匯總、問題匯總(更新中) 完整代碼和訓練好的模型權重文件下載鏈接見本文底…

Windows 藍牙驅動開發-簡介

藍牙(英語:Bluetooth)是一種無線通信技術標準,用來讓固定與移動設備,在短距離間交換資料,以形成個人局域網(PAN)。其使用短波特高頻(UHF)無線電波,經由2.4至2.485 GHz的ISM頻段來進行通信。1994年由電信商愛立信(Erics…

【Vue】全局/局部組件使用流程(Vue2為例)

全局組件和局部組件區別 如何使用 全局組件:全局注冊后,可以在任意頁面中直接使用。局部組件:在頁面中需要先導入子組件路徑,注冊組件才能使用。 適用場景 全局組件:適用于高頻使用的組件,如導航欄、業…

【Pytorch實用教程】PyTorch 中如何輸出模型參數:全面指南

文章目錄 PyTorch 中如何輸出模型參數:全面指南1. 為什么需要輸出模型參數?2. PyTorch 中輸出模型參數的方法2.1 使用 `model.parameters()` 輸出所有參數2.2 使用 `model.named_parameters()` 輸出參數名稱和值2.3 使用 `model.state_dict()` 輸出模型的參數字典2.4 輸出特定…

vscode vue 自動格式化

vscode vue 自動格式化 安裝Prettier和Vetur插件 選擇設置,并且轉到編輯文件。增加如下內容。 {"editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","[vue]": {"editor.defaultFor…

1、docker概念和基本使用命令

docker概念 微服務:不再是以完整的物理機為基礎的服務軟件,而是借助于宿主機的性能。以小量的形式,單獨部署的應用。 docker:是一個開源的應用容器引擎,基于go語言開發的,使用時apache2.0的協議。docker是…

Genymotion配套VirtualBox所在地址

在 Genymotion打開虛擬機前需要先打開VirtualBox中的虛擬機 C:\Program Files\Oracle\VirtualBox\VirtualBox.exe 再開啟genymotion中的虛擬機開關

【Linux】深刻理解軟硬鏈接

一.軟硬鏈接操作 1.軟連接 touch 創建一個文件file.txt ,對該文件創建對應的軟鏈接改怎么做呢? ln -s file.txt file-soft.link .給對應文件創建軟連接。 軟連接本質就是一個獨立的文件,因為我們對應的軟連接有獨立的inode,他…

linux下MySQL的數據存放

在 Linux 下安裝的 MySQL,數據表的數據默認存放在 My曉SQL 數據庫的**數據目錄**(Data Directory)中。具體來說,MySQL 會將所有數據庫的數據存儲在一個由 MySQL 配置文件中指定的目錄里。該目錄包含了所有數據庫的表、索引、日志等…

第三十六章 Spring之假如讓你來寫MVC——攔截器篇

Spring源碼閱讀目錄 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如讓你來寫IOC容器——加載資源篇 第三章 Spring之假如讓你來寫IOC容器——解析配置文件篇 第四章 Spring之假如讓你來寫IOC容器——XML配置文件篇 第五章 Spring之假如讓你來寫…

快速上手 HarmonyOS 應用開發

一、DevEco Studio 安裝與配置 1. DevEco Studio 簡介 DevEco Studio 是 HarmonyOS 的一站式集成開發環境(IDE),提供了豐富的工具和功能,支持 HarmonyOS 應用開發的全流程。 2. DevEco Studio 下載與安裝 下載地址&#xff1a…

Java Web開發進階——錯誤處理與日志管理

錯誤處理和日志管理是任何生產環境中不可或缺的一部分。在 Spring Boot 中,合理的錯誤處理機制不僅能夠提升用戶體驗,還能幫助開發者快速定位問題;而有效的日志管理能夠幫助團隊監控應用運行狀態,及時發現和解決問題。 1. 常見錯誤…

圖解Git——分支的新建與合并《Pro Git》

?分支的新建與合并 先引入一個實際開發的工作流: 開發某個網站。為實現某個新的需求,創建一個分支。在這個分支上開展工作。 正在此時,你突然接到一個電話說有個很嚴重的問題需要緊急修補。你將按照如下方式來處理: 切換到你…

C#使用實體類Entity Framework Core操作mysql入門:從數據庫反向生成模型2 處理連接字符串

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github:codetoys,所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的,可以在任何平臺上使用。 源碼指引:github源…

【數據可視化-12】數據分析崗位招聘分析

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

LeetCode 977 題:有序數組的平方

LeetCode 977 題&#xff1a;有序數組的平方 (Squares of a Sorted Array) LeetCode 第977題要求給定一個按非降序排列的整數數組 nums&#xff0c;返回每個數字的平方并按升序排列。 題目描述 給定一個整數數組 nums&#xff0c;它按非降序排列&#xff08;即 nums[i] < …

excel僅復制可見單元格,僅復制篩選后內容

背景 我們經常需要將內容分給不同的人&#xff0c;做完后需要合并 遇到情況如下 那是因為直接選擇了整列&#xff0c;當然不可以了。 下面提供幾種方法&#xff0c;應該都可以 直接選中要復制區域然后復制&#xff0c;不要選中最上面的列alt;選中可見單元格正常復制&#xff…