Linux離線編譯安裝nginx

Linux離線安裝nginx

1.切換到root用戶

#切換到root用戶
su -
#退出root用戶
exit

2.目錄操作

#切到根目錄
cd /
#查看目錄
ls
#切目錄
cd  /home/...
#到對應的目錄下解壓

3.安裝Nginx

在有網絡的設備上下載以下文件:

  • Nginx:從 nginx.org/en/download 下載。
  • OpenSSL:從 www.openssl.org/source 下載。
  • PCRE:從 sourceforge.net/projects/pcre 下載。
  • zlib:從 www.zlib.net 下載。
#---------------安裝pcre庫-------------------#
#安裝pcre庫  
#cd到壓縮文件的目錄,解壓pcre-8.45.tar.gz
tar -zxvf pcre-8.45.tar.gz 
#cd到pcre-8.45目錄,執行./configure 編譯
./configure
# make編譯
make
# make install安裝,默認情況下,會安裝到/usr/local目錄下
make install#---------------安裝zlib庫-------------------##cd到壓縮文件的目錄,解壓zlib.tar.gz
tar -zxvf zlib.tar.gz 
# cd zlib目錄,執行./configure 編譯
./configure 
# make編譯
make
# make install安裝,默認情況下,會安裝到/usr/local目錄下
make install#---------------安裝openssl庫-------------------#
#安裝openssl庫,openssl版本和nginx是配套的,要安裝nginx對應的版本
#cd到壓縮文件的目錄,解壓openssl-3.5.0.tar.gz
tar -zxvf openssl-3.5.0.tar.gz#cd openssl-3.5.0目錄 執行./config 編譯
./config# make編譯
make
# make install安裝,默認情況下,會安裝到/usr/local目錄下
make install#---------------安裝nginx-------------------#
#nginx,之前的三個庫必須先裝
#cd到壓縮文件的目錄,解壓nginx-1.28.0.tar.gz
tar -zxvf nginx-1.28.0.tar.gz 
# nginx-1.28目錄,執行./configure 編譯或者./configure --prefix=/usr/local/nginx
./configure 
# make編譯
make
# make install安裝,默認情況下,會安裝到/usr/local目錄下
make install

4.啟動驗證

#啟動命令:/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx
#重啟:
/usr/local/nginx/sbin/nginx –s reload
#停止:
/usr/local/nginx/sbin/nginx –s stop
#測試配置文件是否正常:/usr/local/nginx/sbin/nginx –t
#強制關閉:
pkill nginx
查看Nginx進程

你可以使用pspgrep命令來查看Nginx進程是否正在運行。

ps -ef | grep nginx

解釋輸出

  • 如果Nginx正在運行,你會看到類似以下的輸出:

    root      1234     1  0 12:00 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
    www-data  1235  1234  0 12:00 ?        00:00:00 nginx: worker process
    
    • root 表示Nginx主進程以root用戶運行。
    • www-data 表示Nginx工作進程以www-data用戶運行。
  • 如果Nginx未運行,你只會看到grep命令本身:

    user      1236  1233  0 12:05 pts/0    00:00:00 grep --color=auto nginx
    
查Nginx服務狀態

運行以下命令:

sudo systemctl status nginx

解釋輸出

  • 如果Nginx正在運行,你會看到類似以下的輸出:

    ● nginx.service - A high performance web server and a reverse proxy serverLoaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2025-06-20 12:00:00 CST; 1min agoMain PID: 1234 (nginx)Tasks: 2 (limit: 4915)Memory: 2.5MCGroup: /system.slice/nginx.service├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;└─1235 nginx: worker process
    
    • Active: active (running) 表示Nginx正在運行。
    • Main PID 顯示了Nginx主進程的進程ID。
  • 如果Nginx未運行,你會看到類似以下的輸出:

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead)


#### **檢查端口監聽情況**Nginx通常監聽80端口(HTTP)和/或443端口(HTTPS)。你可以使用`netstat`或`ss`命令來檢查這些端口是否被Nginx占用。使用netstat命令```bash
sudo netstat -tulnp | grep nginx

解釋輸出

  • 如果Nginx正在運行,你會看到類似以下的輸出

    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1234/nginx
    tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1234/nginx
    
    • LISTEN 表示Nginx正在監聽這些端口。
    • 1234 是Nginx主進程的PID。
  • 如果Nginx未運行,該命令不會輸出任何內容。

5.修改配置文件

  • 從源碼編譯安裝:默認情況下,配置文件位于/usr/local/nginx/conf/nginx.conf
server {listen 8080;  # 修改為8080端口server_name example.com;location / {root /var/www/html;#修改地址index index.html index.htm;}
}
  • 配置反向代理:如果你想將請求轉發到后端服務器,可以使用proxy_pass指令:
server {listen 80;server_name example.com;location / {proxy_pass http://backend-server:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
  • 使用nano編輯器修改nginx.conf

nano是一個簡單易用的文本編輯器,適合初學者。

  1. 打開nginx.conf文件:

    sudo nano /usr/local/nginx/conf/nginx.conf
    
  2. 修改配置文件:

    • 使用方向鍵導航到需要修改的地方。
    • 直接編輯內容。
  3. 保存并退出:

    • 按下Ctrl + X,然后按下Y確認保存,最后按下Enter鍵退出。

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

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

相關文章

Qt PyQt與PySide技術-C++庫的Python綁定

Qt PyQt與PySide技術-C庫的Python綁定 一、概述二、區別于聯系1、PyQt:Riverbank Computing的解決方案a、發展歷程b、許可模式c、技術特點 2、PySide:Qt官方的Python綁定a、發展歷程b、許可模式c、技術特點 三、對比許可證功能與兼容性社區與維護其他差異…

使用.detach()代替requires=False避免計算圖錯誤

解決對一個對象多次BP更新時造成的RuntimeError: you can only change requires_grad flags of leaf variables.問題_解決對一個對象多次bp更新時造成的問題-CSDN博客 代碼中存在一個特征需要參與輔助損失的計算,由于需要反復進行反向傳播更新,計算圖容易…

linux+docker+ollama+git常用指令

1、Linux命令 新建txt文件:touch xxx.txt 給txt文件夾權限:chmod x xxx.txt 查看日志:tail -f xxx.log / less xxx.log 根據關鍵字查看日志:grep "error" 文件名 查看端口狀態:netstat -an|grep xxxxx 查看…

【八股消消樂】消息隊列優化—系統架構設計

😊你好,我是小航,一個正在變禿、變強的文藝傾年。 🔔本專欄《八股消消樂》旨在記錄個人所背的八股文,包括Java/Go開發、Vue開發、系統架構、大模型開發、具身智能、機器學習、深度學習、力扣算法等相關知識點&#xff…

WebSocket長連接在小程序中的實踐:消息推送與斷線重連機制設計

一、引言:為什么需要WebSocket長連接? 傳統方案的痛點:HTTP輪詢的低效性(高延遲、高資源消耗)小程序場景需求:實時消息推送(如IM、直播彈幕、IoT設備狀態同步)技術選型對比&#xf…

MySQL索引使用指南:何時該為字段添加索引?

在MySQL的性能優化中,索引是最常用且有效的手段之一。但“索引不是萬能藥”——盲目添加索引可能導致寫操作變慢、存儲空間浪費,甚至引發索引失效問題。本文將結合原理與實戰場景,幫你理清??“何時該用索引”??的核心判斷邏輯。 一、先理…

AI時代關鍵詞SEO優化

內容概要 在人工智能(AI)驅動的時代浪潮下,搜索引擎優化(SEO)正迎來深刻變革,關鍵詞策略已成為流量獲取的核心戰場。本文將系統剖析AI時代關鍵詞優化的前沿方法,涵蓋語義分析的精準研究、用戶意…

GO 語言學習 之 代碼風格

1. 命名規范 字母數字和下劃線組成 以小寫字母、大寫字母或下劃線開頭 不允許包含標點符號、運算符、空白字符(空格、TAB、換行)等 采用駝峰命名法 (大駝峰、小駝峰) 見名知義:命名要有實際意義,易讀性&am…

【軟考高級系統架構論文】論云上自動化運維及其應用

論文真題 云上自動化運維是傳統IT運維和 DevOps的延伸,通過云原生架構實現運維的再進化。云上自動化運維可以有效幫助企業降低IT運維成本,提升系統的靈活度,以及系統的交付速度,增強系統的可靠性,構建更加安全、可信、開放的業務平臺。 請圍繞“云上自動化運維及其應用”…

錯誤: 程序包androidx.fragment.app不存在 import android

錯誤: 程序包androidx.fragment.app不存在 import androidx.fragment.app.FragmentActivity; 這個是什么錯?dependencies { //implementation fileTree(dir: libs, include: [*.jar]) implementation project(path: :libscan) //noinspection GradleCompatible implementation…

Java UDP Socket 實時在線刷卡掃碼POS消費機門禁控制板服務端示例源碼

本示例使用的設備&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bYG0BuO&ftt&id17021194999 一、獲取本電腦所有網卡IP public static String getIP() {Enumeration<NetworkInterface> netInterfaces;ArrayList<String>…

MATLAB基礎應用精講-【數模應用】層次分析法(AHP)(附MATLAB和python代碼實現)

目錄 前言 算法原理 什么是層次分析法(AHP) 注意事項 基本原理 算法步驟 1建立層次結構 2構建判斷矩陣 3計算權重向量 4一致性檢驗 SPSSAU AHP層次分析案例 1、背景 2、理論 3、操作 4、SPSSAU輸出結果 5、文字分析 6、剖析 疑難解惑 數據如何錄入? 如何…

Macintosh小電腦、小手機 | openKylin最新硬件創意形態首次亮相!

近期&#xff0c;OpenAtom openKylin&#xff08;簡稱 “openKylin”&#xff09;社區與嘉立創旗下的立創開發板團隊展開深度技術合作&#xff0c;成功完成立創?泰山派1開發板與openKylin 2.0操作系統的兼容適配。5月24日&#xff0c;嘉立創“第三屆開源硬件星火會”在深圳盛大…

基于Spring Boot的計算機考研交流系統的設計與實現

基于Spring Boot的計算機考研交流系統的設計與實現 隨著計算機科學的發展&#xff0c;越來越多的學生選擇考研來提高自己的專業水平。然而&#xff0c;考研的過程中&#xff0c;學生們面臨著各種問題&#xff0c;如學習資料的獲取、交流平臺的缺乏等。為了更好地滿足這些需求&…

技術逐夢之旅:從C語言到Vue的成長之路

董翔&#xff0c;一個對軟件技術充滿熱忱的00后。從初次在屏幕上敲出"Hello World"的激動&#xff0c;到如今能夠獨立開發完整Web應用的從容&#xff0c;我的編程之路見證了技術的迭代與自我的蛻變。 作為軟件專業的學生&#xff0c;我始終堅信"技術是解決問題…

Qt QMap數據清除測試(驗證QMap內存正確釋放方法)

環境 Qt C (msvc編譯環境) 測試代碼 //定義 動子信息 &#xff08;可放在.cpp文件 中&#xff09; struct MoverInfo{uint32_t ID;double PartPosition;uint16_t ModuleID;uint32_t PartID;uint32_t TrackID;uint32_t TrackID2; };//使用Windows任務管理器查看內存使用情況//…

【安全咨詢】

安全咨詢服務是一個專業領域&#xff0c;旨在幫助個人和組織識別、評估和管理各種安全風險&#xff0c;保護其人員、資產、信息和運營安全。 一、安全咨詢 1.1 服務的核心目標 ?識別風險&#xff1a;?? 發現潛在的、可能對組織或個人造成損害的威脅和漏洞。?評估威脅&am…

vue+elementUI實現固定table超過設定高度顯示下拉條

解決方案&#xff1a; 在表格上添加了style"height: px;"和:max-height""&#xff0c;這兩個設置共同作用使表格在內容超過 設定高度時顯示滾動條配合css使用 高度值可根據實際需求調整 <el-table:data"biddData"style"width: 100%;…

UNet改進(5):線性注意力機制(Linear Attention)-原理詳解與代碼實現

引言 在計算機視覺領域&#xff0c;UNet架構因其在圖像分割任務中的卓越表現而廣受歡迎。近年來&#xff0c;注意力機制的引入進一步提升了UNet的性能。本文將深入分析一個結合了線性注意力機制的UNet實現&#xff0c;探討其設計原理、代碼實現以及在醫學圖像分割等任務中的應…

Unity技能編輯器深度構建指南:打造專業級戰斗系統

本文為技術團隊提供完整的技能編輯器開發指南&#xff0c;涵蓋核心架構設計、資源管線搭建和協作工作流實現&#xff0c;幫助您構建專業級的戰斗技能系統。 一、核心架構設計 1. 基礎框架搭建 專用場景模板&#xff1a; 創建SkillEditorTemplate.unity場景 核心節點&#xff…