Nginx源碼編譯安裝

Nginx

    • Nginx
      • Nginx的特點
      • Nginx的使用場景
      • Nginx 有哪些進程
    • 使用源碼編譯安裝Nginx
      • 準備工作
      • 安裝依賴包
      • 編譯安裝Nginx
      • 檢查、啟動、重啟、停止 nginx服務
      • 配置 Nginx 系統服務
        • 方法一:
        • 方法二:
      • 訪問Nginx頁面
    • 升級Nginx
      • 準備工作
      • 編譯安裝新版本Nginx
      • 驗證

Nginx

在這里插入圖片描述

Nginx的特點

最核心的區別在于Nginx 采用異步非阻塞機制 ,多個連接可以對應一個進程;Apache 采用的是同步阻塞+多進程/線程模型,一個連接對應一個進程

  • Nginx 抗并發能力更高
  • Nginx 更輕量,內存、CPU資源消耗更少
  • Nginx 配置簡潔,使用場景多,穩定性高

Nginx的使用場景

  1. 用作Web網站服務,處理http靜態頁面請求
  2. 用作虛擬主機,實現一個服務器用于做多個網站站點
  3. 用作反向代理、負載均衡,可以作為網關代理服務器接收客戶端的請求轉發給后端節點服務器集群
  4. 用作web緩存服務器

Nginx 有哪些進程

  • master進程:管理worker進程,加載配置文件
  • worker進程:處理請求連接

使用源碼編譯安裝Nginx

準備工作

  • 關閉安全防護系統
systemctl disable firewalld.service --nowsetenforce 0SELINUX=enforcing		-->			SELINUX=0 

在這里插入圖片描述
在這里插入圖片描述

  • 下載源碼安裝包,并上傳至/opt目錄下
    Nginx官網
    Nginx下載頁面
    在這里插入圖片描述
    在這里插入圖片描述

當前我選擇 Nginx1.25.5,以便等會進行平滑升級到最新版本 Nginx1.26.0

使用XFTP進行文件傳輸——上傳到/opt目錄下

在這里插入圖片描述

  • 解壓文件到當前目錄
cd /opttar xf nginx-1.25.5.tar.gzll

在這里插入圖片描述

  • 創建運行用戶、組
useradd -M -s /sbin/nologin nginxid nginx

在這里插入圖片描述

安裝依賴包

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

在這里插入圖片描述

編譯安裝Nginx

cd /opt/nginx-1.25.5/./configure \
--prefix=/usr/local/nginx \							#指定nginx的安裝路徑
--user=nginx \										#指定用戶名
--group=nginx \										#指定組名
--with-http_stub_status_module						#啟用 http_stub_status_module 模塊以支持狀態統計make && make install		ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#讓系統識別nginx的操作命令

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

檢查、啟動、重啟、停止 nginx服務

  • 檢查nginx服務配置
nginx -t								#檢查配置文件是否配置正確

在這里插入圖片描述

  • 啟動nginx服務
/usr/local/nginx/sbin/nginx	netstat -lntp | grep 80

在這里插入圖片描述

  • 查看PID進程號
cat /usr/local/nginx/logs/nginx.pid##只有在運行時才能查看PID號

在這里插入圖片描述

  • 停止nginx服務
kill -3 <PID號>
kill -s QUIT <PID號>
killall -3 nginx
killall -s QUIT nginx

在這里插入圖片描述

  • 重啟nginx服務
kill -1 <PID號>
kill -s HUP <PID號>
killall -1 nginx
killall -s HUP nginx

配置 Nginx 系統服務

方法一:
vim /etc/init.d/nginx#!/bin/bash#chkconfig: - 99 20#description:Nginx Service Control ScriptCOM="/usr/local/nginx/sbin/nginx"PID="/usr/local/nginx/logs/nginx.pid"case "$1" instart)$COM;;stop)kill -s QUIT $(cat $PID);;restart)$0 stop$0 start;;reload)kill -s HUP $(cat $PID);;*)echo "Usage: $0 {start|stop|restart|reload}"exit 1esacexit 0chmod +x /etc/init.d/nginx			#添加執行權限
chkconfig --add nginx							#添加為系統服務systemctl start nginxnetstat -lntp | grep 80

在這里插入圖片描述

在這里插入圖片描述

方法二:
vim /lib/systemd/system/nginx.service[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.targetchmod 754 /lib/systemd/system/nginx.servicesystemctl start nginx.service
systemctl enable nginx.service

說明

[Unit]:服務的說明
Description:描述服務
After:依賴,當依賴的服務啟動之后再啟動自定義的服務[Service]服務運行參數的設置
Type=forking是后臺運行的形式,使用此啟動類型應同時指定PIDFile=,以便systemd能夠跟蹤服務的主進程。
ExecStart為服務的具體運行命令
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務分配獨立的臨時空間
注意:啟動、重啟、停止命令全部要求使用絕對路徑[Install]服務安裝的相關設置,可設置為多用戶

在這里插入圖片描述

在這里插入圖片描述

訪問Nginx頁面

瀏覽器訪問

http://<本機IP>:80
在這里插入圖片描述

升級Nginx

準備工作

  • 查看當前安裝Nginx的版本及已模塊
nginx -v			#查看當前安裝的Nginx版本nginx -V			#查看當前安裝的Nginx已安裝的模塊

在這里插入圖片描述

  • 下載新版本源碼安裝包,并上傳至/opt目錄下

    在這里插入圖片描述

  • 解壓文件到當前目錄

    cd /opttar xf nginx-1.26.0.tar.gzll
    

    在這里插入圖片描述

編譯安裝新版本Nginx

cd /opt/nginx-1.26.0/./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_modulemakemv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old		#備份老版本Nginxcp objs/nginx /usr/local/nginx/sbin/nginx	#將新版本的Nginx移動到安裝目錄make upgrade#要保證當前 nginx 進程是通過 /usr/local/nginx/sbin/nginx 啟動的,而不是通過查找環境變量中那個 nginx 命令啟動的
#或者先 killall nginx ,再/usr/local/nginx/sbin/nginx

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

驗證

  • 查看Nginx是否正常啟動
	netstat -lntp | grep 80

在這里插入圖片描述

  • 檢查當前Nginx的版本
nginx -v

在這里插入圖片描述

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

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

相關文章

【HarmonyOS】Stage 模型 - UIAbility 的啟動模式

Stage 模型這樣的應用&#xff0c;它在啟動的時候會先準備 Ability Stage 舞臺&#xff0c;接著呢&#xff0c;就可以基于它去創建 UIAbility 的實例&#xff0c;并去啟動它。 UIAbility 組件啟動模式 有四種&#xff1a; singletonstandardmultitonspecified 修改模塊的 mod…

SSMP整合案例第五步 在前端頁面上拿到service層調數據庫里的數據后列表

在前端頁面上列表 我們首先看看前端頁面 我們已經把數據傳入前端控制臺 再看看我們的代碼是怎么寫的 我們展示 數據來自圖dataList 在這里 我們要把數據填進去 就能展示在前端頁面上 用的是前端數據雙向綁定 axios發送異步請求 函數 //鉤子函數&#xff0c;VUE對象初始化…

【四大組件】-- 活動 Activity

目錄 活動活動是什么活動的相關操作手動創建活動活動中使用Toast活動中使用Menu銷毀一個活動 使用Intent實現活動間啟動顯示啟動隱式啟動 活動間數據傳遞活動的生命周期返回棧活動的狀態活動的生存期 活動的啟動流程活動的回收和重建如何在活動銷毀前保存狀態 活動的啟動模式st…

設計模式(十四)行為型模式---訪問者模式(visitor)

文章目錄 訪問者模式簡介分派的分類什么是雙分派&#xff1f;結構UML圖具體實現UML圖代碼實現 優缺點 訪問者模式簡介 訪問者模式&#xff08;visitor pattern&#xff09;是封裝一些作用于某種數據結構中的元素的操作&#xff0c;它可以在不改變這個數據結構&#xff08;實現…

紅隊內網攻防滲透:內網滲透之windows內網權限提升技術:手工篇

紅隊內網攻防滲透 1. 內網權限提升技術1.1 windows內網權限提升技術--手工篇1.1.1 Web到Win-系統提權-人工操作1.1.1.1 信息收集1.1.1.2 補丁篩選1.1.1.3 EXP獲取執行1.1.2 Web到Win-系統提權-土豆家族1.1.2.1 Test in:Windows 10/11(1809/21H2)1.1.2.2 Test in:Windows Se…

全新市場階段,Partisia BlockChain 將向 RWA、DeFi 等領域布局

Partisia Blockchain 是一個全新范式的 Layer1&#xff0c;該鏈通過 MPC 方案來構建鏈上隱私方案&#xff0c;同時該鏈通過系列獨特且創新的設計&#xff0c;旨在進一步解決目前 Web3 中所面臨的不可能三角問題&#xff0c;包括安全性、互操作性和可擴展性&#xff0c;為更多的…

NTFS磁盤格式讀寫工具:Tuxera NTFS 2021 for Mac

Tuxera NTFS 是一款用于 macOS 系統的 NTFS 文件系統驅動程序。NTFS 是 Windows 系統中常用的文件系統&#xff0c;而 macOS 默認只支持讀取 NTFS 格式的磁盤&#xff0c;不能進行寫入操作。因此&#xff0c;如果你需要在 macOS 上進行 NTFS 磁盤的寫入操作&#xff0c;就需要安…

提交一個Bug需要哪些信息?

軟件在使用過程中存在的任何問題都叫做軟件的缺陷&#xff0c;簡稱Bug&#xff0c;我認為要提交一個Bug首先得將這個Bug的核心內容說明一下&#xff0c;比如Bug的核心問題是什么、產生的前提、預期結果是什么、但實際結果是什么、以及附上一個證據圖片。 然后提交時需要Bug報告…

【一刷《劍指Offer》】面試題 28:字符串的排列

牛客對應題目鏈接&#xff1a;字符串的排列_牛客題霸_牛客網 (nowcoder.com) 力扣對應題目鏈接&#xff1a;LCR 157. 套餐內商品的排列順序 - 力扣&#xff08;LeetCode&#xff09; 核心考點 &#xff1a;全排列問題&#xff0c; DFS。 一、《劍指Offer》對應內容 二、分析題…

JS(DOM、事件)

DOM 概念:Document Object Model&#xff0c;文檔對象模型。將標記語言的各個組成部分封裝為對應的對象: Document:整個文檔對象Element:元素對象Attribute:屬性對象Text:文本對象Comment:注釋對象 JavaScript通過DOM&#xff0c;就能夠對HTML進行操作: 改變 HTML 元素的內…

Windows端口本地轉發

參考 微軟Netsh interface portproxy 命令 界面端口代理的 Netsh 命令 | Microsoft Learn 使用Windows系統的portproxy功能配置端口轉發 使用Windows系統的portproxy功能配置端口轉發-阿里云幫助中心 (aliyun.com) 將來自0.0.0.0地址對端口35623的訪問轉發到172.18.106.16…

SpringBoot @ModelAttribute注解的深入指南

文章目錄 前言一、基本概念二、方法級別的@ModelAttribute1. 用途2. 示例三、參數級別的@ModelAttribute1. 用途2. 示例四、處理多個@ModelAttribute1. 示例五、繼承與@ModelAttribute注解的結合使用1. 示例1.1 基類(父類)1.2 子類(具體控制器)<

多維數組找最大值

調用JavaScript的一個內置函數&#xff1a;Math.max() <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title…

虛擬機VMware Workstation 常用的快捷方式

1、 虛擬機軟件&#xff0c;如 VMware Workstation、VirtualBox 等 所使用的是 VMware Workstation 2、快捷方式 2.1 切換鼠標和鍵盤焦點 CtrlAlt&#xff1a;從虛擬機中釋放鼠標和鍵盤&#xff0c;回到主機 2.2 全屏模式 2.2.1 進入全屏模式: CtrlAltEnter 2.2.2 退出全…

政安晨:【Keras機器學習示例演繹】(五十一)—— 利用廣義網絡、深度網絡和交叉網絡進行結構化數據學習

政安晨的個人主頁&#xff1a;政安晨 歡迎 &#x1f44d;點贊?評論?收藏 收錄專欄: TensorFlow與Keras機器學習實戰 希望政安晨的博客能夠對您有所裨益&#xff0c;如有不足之處&#xff0c;歡迎在評論區提出指正&#xff01; 本文目標&#xff1a;使用 "寬深 "和 …

Python 技能提升(三)

global 和 nonlocal b 全局變量 global variabledef foo():a 局部變量 local variable# 在局部里面操作全局變量&#xff0c;需要加上聲明global bb b &#xff01;&#xff01;&#xff01;print(b)foo() # 全局變量 global variable&#xff01;&#xff01;&#xff01…

Python 遞歸函數一例

現有示例數據 # 示例數據 pending_join [ {increment: "department Finance", statement_index: 0}, {increment: "name Lisa", statement_index: 2}, {increment: "gender Female", statement_index: 3}, {increment: "hire_date <…

redis如何實現分布式鎖

Redisson是怎么實現分布式鎖的 分布式鎖&#xff1a;Redisson 提供了一種簡單而強大的方式來實現分布式鎖。 它支持多種鎖模式&#xff0c;如公平鎖、可重入鎖、讀寫鎖等&#xff0c;并且提供了鎖的超時設置和自動釋放功能。 鎖的獲取 在Redisson中常見獲取鎖的方式有 lock() …

【代碼隨想錄訓練營】【Day 37】【貪心-4】| Leetcode 840, 406, 452

【代碼隨想錄訓練營】【Day 37】【貪心-4】| Leetcode 840, 406, 452 需強化知識點 python list sort的高階用法&#xff0c;兩個key&#xff0c;另一種逆序寫法python list insert的用法 題目 860. 檸檬水找零 思路&#xff1a;注意 20 塊找零&#xff0c;可以找3張5塊升…

Mysql基礎教程(13):GROUP BY

MySQL GROUP BY 【 GROUP BY】 子句用于將結果集根據指定的字段或者表達式進行分組。 有時候&#xff0c;我們需要將結果集按照某個維度進行匯總。這在統計數據的時候經常用到&#xff0c;考慮以下的場景&#xff1a; 按班級求取平均成績。按學生匯總某個人的總分。按年或者…