Nginx 安裝詳細(一)

来源:https://www.cnblogs.com/l-hh/archive/2019/03/25/10594415.html
-Advertisement-
Play Games

1. 老規矩,來點開場白:Nginx簡單介紹 Nginx是一款自由的、開源的、高性能的HTTP伺服器和反向代理伺服器;同時也是一個IMAP、POP3、SMTP代理伺服器;Nginx可以作為一個HTTP伺服器進行網站的發佈處理,另外Nginx可以作為反向代理進行負載均衡的實現。 更多關於Nginx介紹 ...


1.  老規矩,來點開場白:Nginx簡單介紹

Nginx是一款自由的、開源的、高性能的HTTP伺服器和反向代理伺服器;同時也是一個IMAP、POP3、SMTP代理伺服器;Nginx可以作為一個HTTP伺服器進行網站的發佈處理,另外Nginx可以作為反向代理進行負載均衡的實現。

更多關於Nginx介紹以及作用請自行百度

 2. 安裝Nginx基礎依賴包

[root@nginx ~]# yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel  -y 

 3. 下載相關的軟體包

 3.1 下載nginx穩定版

註:進入Nginx安裝包下載地址複製您想要的版本鏈接,我這裡以Nginx-1.14.0為例。

[root@nginx~]# cd /usr/local/src/                      
[root@ nginx src]# wget http://nginx.org/download/nginx-1.14.0.tar.gz 

 3.2 下載nginx-sticky模塊(可選安裝,應用於集群)

作用:後端做負載均衡解決session sticky問題。

[root@nginx src]# wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz

 3.3 下載ngx_cache_purge模塊(可選安裝)

 作用:將ngx_cache_purge編譯到到Nginx中,用來清除指定URL的緩存。

 (官網地址:http://labs.frickle.com/nginx_ngx_cache_purge/)

[root@nginx src]# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

 

 4. 添加Nginx用戶和組

[root@nginx ~]# groupadd www                             
[root@nginx ~]# useradd -g www www -s /sbin/nologin

註:創建nginx運行用戶www並加入到www組,不允許www用戶直接登錄系統。

 5. 解壓Nginx源碼包併進入解壓目錄,進行編譯安裝

[root@nginx src]# tar zxf nginx-1.14.0.tar.gz     
# 註意3.2的可選項 [root@nginx src]# tar zxf ngx_cache_purge
-2.3.tar.gz
# 註意3.3的可選項 [root@nginx src]# tar zxf nginx
-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz [root@nginx src]# cd nginx-1.14.0/

 註:‘=’號後面是自己安裝包的絕對路徑,和配置文件路徑。

[root@nginx-master nginx-1.14.0]# ./configure --prefix=/usr/local/nginx             
> --user=www --group=www                                                  
> --with-http_stub_status_module                                               
> --with-http_realip_module --with-http_ssl_module                               
> --with-http_gzip_static_module                                               
> --http-client-body-temp-path=/var/tmp/nginx/client                             
> --http-proxy-temp-path=/var/tmp/nginx/proxy                                  
> --http-fastcgi-temp-path=/var/tmp/nginx/fcgi
# 註意3.2的可選項
> --with-pcre --add-module=/usr/local/src/ngx_cache_purge-2.3
# 註意3.3的可選項 > --add-module=/usr/local/src/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

 

執行完編譯後:

 

[root@nginx nginx-1.14.0]# make && make install

註:Nginx的所有模塊必須在編譯的時候添加,不能再運行的時候動態載入。

 6. 優化Nginx程式的執行路徑

[root@nginx nginx-1.14.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  
[root@nginx nginx-1.14.0]# nginx -t

如果出現以下問題:

需要創建此目錄:

[root@nginx nginx-1.14.0]# mkdir -p /var/tmp/nginx/client  

7. 配置Nginx開機自啟動等命令,方便我們管理Nginx

原始管理nginx的命令,不是很方便!

[root@nginx-master ~]# nginx              啟動nginx
[root@nginx-master ~]# nginx -s reload    重啟nginx
[root@nginx-master ~]# nginx -s stop      停止nginx

接下來設置常用的管理命令:

1) 創建開機啟動命令腳本文件:

[root@nginx ~]# vim /etc/init.d/nginx

2) 在這個Nginx文件中插入一下啟動腳本代碼:

-----------------------------------腳本如下 -----------------------------------
#! /bin/bash
# chkconfig: - 85 15
PATH=/usr/local/nginx
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
scriptNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $scriptNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0
[root@nginx ~]# cd /etc/init.d/

3) 設置所有人都有對這個啟動腳本nginx文件的執行許可權:

[root@nginx init.d]# chmod a+x nginx 

4) 把nginx加入系統服務中:

[root@nginx init.d]# chkconfig --add nginx 

5) 把服務設置為開機啟動:

[root@nginx init.d]# chkconfig nginx on

註:reboot重啟系統生效!

6) 重啟後,就可以執行如下命令進行管理了

systemctl start   nginx.service         # 啟動nginx
systemctl stop    nginx.service         # 結束nginx
systemctl restart nginx.service         # 重啟nginx
systemctl enable  nginx.service         # 開機啟動

 8. 如果出現 Nginx 啟動不了,請嘗試以下方法

 1) 如果之前安裝過httpd,側需要先卸載httpd,否則啟動失敗,除非修改Nginx啟動埠。

[root@nginx ~]# yum remove httpd -y 

 2) 如果還是啟動不來,再試試這個方法:殺死Nginx相關的進程之後,啟動Nginx

[root@nginx ~]#ps -A | grep nginx                                         
[root@nginx ~]#kill -9 pid1                                              
[root@nginx ~]#kill -9 pid2

 3)  如果還是不行,查看日誌信息解決。

9. 啟動Nginx並訪問測試

註:後續繼續更新Nginx優化及反向代理功能!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 不過是java開發還是C#開發或者PHP的開發中,都需要關註SQL註入攻擊的安全性問題,為了保證客戶端提交過來的數據不會產生SQL註入的風險,我們需要對接收的數據進行危險字元過濾來防範SQL註入攻擊的危險,以下是C#防止SQL註入攻擊的一個危險字元過濾函數,過濾掉相應的資料庫關鍵字。 主要過濾兩類字 ...
  • Sqlserver資料庫的運維過程中,資料庫的備份操作至關重要,平時我們都是手動進行資料庫的備份操作。如果要做到讓資料庫定時自動備份,則可以使用Microsoft SQL Server Management Studio管理工具中的維護計劃來實現資料庫的自動定時備份,可設置Sqlserver資料庫每 ...
  • 先說一堆廢話:之前在阿裡雲上租了一個伺服器,也配置了相關的環境,然後準備把自己手上的一個小網站掛上去,就按照我的上篇博客記載的方法把發佈好的網站發佈到伺服器的iis上,結果發佈之後死活訪問不了,始終顯示無法訪問該網站,在試過防火牆等各種方法之後,都沒有得到解決,就來打電話給阿裡雲的客服,求助了阿裡雲 ...
  • Win7鏈接列表框是依照Windows7的開始菜單開發的,同時進行了屬性和功能的擴展。 效果圖 項屬性 控制項屬性 控制項主要事件 示例代碼 ...
  • 在Winform項目中,有時需要將UI變成適應Vista/Windows7/8/10的風格,通過"選用"以下代碼來使你的UI支持系統主題渲染. 註:該功能不支持XP,建議使用DS控制項庫中的WIN7風格控制項。 新建工程,添加相關控制項,複製粘貼以下代碼即可 ...
  • IRC 客戶端: Textual 5 HexChat IRC 用戶密碼常用命令: 用戶密碼: 忘記密碼 如果太長時間沒登錄IRC,難免會忘記密碼,那IRC有重置密碼的功能嗎?當然有,不過也是通過命令行進行操作的,相當geek:)。此功能是伺服器通過提供NickServ服務(其實語法上就是一個用戶,類 ...
  • 1. 主機規劃 伺服器名稱 操作系統版本 內網IP 外網IP(模擬) Hostname 部署模塊 salt100 CentOS7.5 172.16.1.100 10.0.0.100 salt100 salt-master、salt-minion salt01 CentOS7.5 172.16.1.1 ...
  • Linux PXE無人值守網路裝機 一、實驗環境: 2台Linux系統(RHEL6.5版本),1台作為:PXE遠程安裝伺服器(安裝dhcp服務、ftp服務、tftp服務),另1台作為:客戶端(未裝RHEL6.0系統) TFTP服務放入開機載入程式文件,FTP存放光碟鏡像文件 二、PXE的概念 PXE ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...