【Linux】Centos之安裝Nginx及註意事項

来源:http://www.cnblogs.com/wangzhongqiu/archive/2017/05/12/6527346.html
-Advertisement-
Play Games

———————————————————————相關文章———————————————————————————— 【Linux】nginx常用命令 【nginx】詳細配置說明 ———————————————————————相關文章———————————————————————————— 1.Nginx ...


相關內容鏈接

【Linux】nginx常用命令

【nginx】詳細配置說明

1.Nginx的簡單說明

  a.  Nginx是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器,期初開發的目的就是為了代理電子郵件伺服器室友:Igor Sysoev開發,源代碼符合BSD開源。其特點就是占用記憶體少併發能力強,在天朝使用Nginx的大型網站已經有很多:百度、淘寶、騰訊等等...。

  b.Nginx作為Http伺服器,有以下幾項基本特征:

    b.1 處理靜態文件,索引文件以及自動索引,打開文件描述符緩衝。

    b.2 無緩存的反向代理加速,簡單的負載均衡和容錯

    b.3 模塊化的結構,包括gzipping,byte ranges,chunked responses以及SSI-filter等filter,如果由FastCGI或其它代理伺服器處理蛋液中存在的多個SSI,則這項處理可以並行運行,而不需要相互等待。

    b.4 支持SSL和TLSSNI。

  c.Nginx官網:http://nginx.org/

  d.Nginx推薦學習網址:http://dreamfire.blog.51cto.com/418026/1140965

2.準備工作

  a.上面簡單介紹了一下Nginx,大家如果想要瞭解更多關於Nginx的知識,請自行通過網路學習。

  b.工欲善其事必先利其器,下麵我們就在Linux下麵簡單安裝一下Niginx,在安裝過程中需要了一些問題,同步都會在博客中說出來。

  c.Nginx的安裝依賴於以下三個包,意思就是在安裝Nginx之前首先必須安裝一下的三個包,安裝順序為我寫的順序:

    c.1 SSL功能需要openssl庫,下載地址:http://www.openssl.org/

    c.2 gzip模塊需要zlib庫,下載地址:http://www.zlib.net/

    c.3 rewrite模塊需要pcre庫,下載地址:http://www.pcre.org/

  d.Nginx的安裝包:下載地址為:http://nginx.org/en/download.html

  e.將上面下載的幾個軟體全部使用Xftp上傳到Linux系統中,上傳路徑和軟體如圖所示:

    

  f.操作需要的軟體以及系統如下:虛擬機(Vmware),虛擬機中安裝的Centos系統,Xshell,Xftp,以及上面的幾個包。

   g.下麵開始按照上面說的按照順序開始安裝軟體。

3.安裝SSL功能需要openssl庫以及gzip模塊需要的zlib庫

  a(1).首先我們安裝SSL功能需要的openssl庫插件,註意:安裝過程是按照我在linux下設置的文件路徑來安裝的,命令如下:

    a.1   tar -zxvf  soft/openssl-SNAP-20160104

    a.2   cd cd openssl-SNAP-20160104/

    a.3   ./config

    a.4   make

    a.5   make install

  b(1).安裝gzip模塊需要zlib庫的安裝方法和openssl安裝的方法一模一樣,也是分為上面五個步驟,只不過是文件的名稱不一樣

  b.如果沒有報錯,則說明安裝完全完成了~。

4.安裝 rewrite模塊需要pcre庫

  a.安裝 rewrite模塊需要pcre庫的安裝方法和openssl安裝的方法一模一樣,也是分為上面五個步驟,只不過是文件的名稱不一樣,命令簡單如下:

    a.1   tar -zxvf soft/pcre-8.38.tar.gz

    a.2   cd pcre-8.38/

    a.3   ./configure 

    a.4   make

    a.5   make install

  b.在執行./configure的出現錯誤了,導致不能繼續往下執行,報錯內容為:

    error: You need a C++ compiler for C++ support,看到這句話我們就已經猜到了應該是c++包信息,而linux中沒有,那麼首先安裝一下這個包信息即可,安裝命令為:

    b.1  yum install -y gcc gcc-c++

  c.當安裝完上面的c++包之後,在此運行,發現消息已經顯示安裝成功了,當基於上面的東西全部安裝完成之後,就需要安裝Nginx服務了。

5.安裝 Nginx服務

  a.命令簡單如下:

    a.1   tar -zxvf soft/nginx-1.9.9.tar.gz

    a.2   cd nginx-1.9.9/

    a.3  

./configure --prefix=/opt/soft/nginx --with-pcre=/usr/local/src/pcre-8.38 --with-zlib=/usr/local/src/zlib-1.2.11 --with-openssl=/usr/local/src/openssl-1.1.0e

    a.4   make

    a.5   make install

6.監測Nginx是否安裝成功

  a.當上面的所有步驟完成之後,則說明Nginx安裝已經完成,那麼我們如何來確定是否安裝成功了呢?通過以下命令來確定即可。

    a.1  cd /usr/local/nginx/sbin/

    a.2 ./nginx -t

  b. 當我執行第二個命令(./nginx -t)的時候出錯了,報沒有許可權的錯誤。如圖所示:

    

    備註:根據錯誤提示,我們就能夠看出來,是說/usr/local/nginx下沒有許可權,解決辦法也很簡單,我們給文件賦值許可權。

  c.如下圖所示,配置許可權(配置許可權需要切換到root用戶下)之後,執行上面兩個步驟,如果linux中如下圖所示:則說明安裝已成功。

    

  d.當確認安裝完成之後,首先就需要啟動和查看Nginx預設安裝的埠是多少,兩個命令分別如下:

    (1)  ./nginx

    (2)  netstat -ntlp  ,  Nginx預設埠為80

      firewall-cmd --permanent --zone=public --add-port=80/tcp
      firewall-cmd --permanent --zone=public --add-port=80/udp
      firewall-cmd --reload 

  e.當上面的工作完成之後,我們在外部瀏覽器中瀏覽:http://IP,出現如圖所示,則說明安裝已完全完成。

    

7.將Nginx設置為開機自動啟動

 

  a.當上面6步完成之後,說明安裝已經完全成功了,但是每次開機我們面臨的一個問題,就是每次都要執行命令(1: cd /usr/local/nginx/sbin/   2:./nginx -t),那麼這時候有這個需要,設置開機自啟動,開機自動啟動的命令為:將Nginx的啟動命令添加到/etc/rc.local,命令如下:

    echo "/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf" >> /etc/rc.local

  b.然後將Linux關機重啟測試一下,如果http://IP還能夠訪問,則說明配置成功了,我這邊已測試,配置完全成功。

 

8.使用server命令啟動nginx服務

   a.  現在覺得啟動命令太麻煩,雖然開機可以自啟動,但是每次改動要重新啟動nginx的話,要麼輸入命令,要麼開機,都還不是很好,那麼我們能不能創造一個更好的方式呢?當然可以,我們可以通過設置System V腳本。

  b.腳本代碼如下所示:

#!/bin/sh 
# 
# nginx - this script starts and stops the nginx daemon 
# 
# chkconfig: - 85 15 
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \ 
#   proxy and IMAP/POP3 proxy server 
# processname: nginx 
# config: /etc/nginx/nginx.conf 
# config: /etc/sysconfig/nginx 
# pidfile: /var/run/nginx.pid 
# Source function library. 
. /etc/rc.d/init.d/functions 
# Source networking configuration. 
. /etc/sysconfig/network 
# Check that networking is up. 
[ "$NETWORKING" = "no" ] && exit 0 
    nginx="/usr/local/nginx/sbin/nginx" 
    prog=$(basename $nginx) 
    NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 
    lockfile=/var/lock/subsys/nginx 
 
start() { 
    [ -x $nginx ] || exit 5 
    [ -f $NGINX_CONF_FILE ] || exit 6 
    echo -n $"Starting $prog: " 
    daemon $nginx -c $NGINX_CONF_FILE 
    retval=$? 
    echo 
[ $retval -eq 0 ] && touch $lockfile 
    return $retval 
} 
 
stop() { 
    echo -n $"Stopping $prog: " 
    killproc $prog -QUIT 
    retval=$? 
    echo 
[ $retval -eq 0 ] && rm -f $lockfile 
    return $retval 
    killall -9 nginx 
} 
 
restart() { 
    configtest || return $? 
    stop 
    sleep 1 
    start 
} 
 
reload() { 
    configtest || return $? 
    echo -n $"Reloading $prog: " 
    killproc $nginx -HUP 
    RETVAL=$? 
    echo 
} 
 
force_reload() { 
    restart 
} 
 
configtest() { 
    $nginx -t -c $NGINX_CONF_FILE 
} 
 
rh_status() { 
    status $prog 
} 
 
rh_status_q() { 
    rh_status >/dev/null 2>&1 
} 
 
case "$1" in 
    start) 
        rh_status_q && exit 0 
        $1 
    ;; 
    stop) 
        rh_status_q || exit 0 
        $1 
    ;; 
    restart|configtest) 
        $1 
    ;; 
    reload) 
        rh_status_q || exit 7 
        $1 
    ;; 
    force-reload) 
        force_reload 
    ;; 
    status) 
        rh_status 
    ;; 
    condrestart|try-restart) 
        rh_status_q || exit 0 
    ;; 
    *) 
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
        exit 2 
esac 

server命令的代碼

 

  c.創建命令如下,手先跳轉到/etc/init.d下創建nginx啟動腳本文件,命令如下;

    c.1 cd /etc/init.d/

    c.2 vim nginx  創建一個新的nginx文件,將上面的命令代碼copy到裡面,然後保存

  d.修改腳本許可權,命令如下:chmod 755 nginx

  e.將腳本文件加入到chkconfig中  chkconfig --add nginx

 

  f.設置nginx開機在3和5級別自動啟動  chkconfig --level 35 nginx on

  g.測試nginx腳本文件是否能夠正常使用,命令如下,我均已測試,全部可以使用。

    g.1  /etc/init.d/nginx restart

    g.2  /etc/init.d/nginx reload

    g.3   /etc/init.d/nginx stop 

     

    到這裡我們這片筆記就完成了,能幫助大家就幫到,幫不到大家,謝謝大家了,這隻是學習筆記,不用較真某些東西,謝謝~~~~


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

-Advertisement-
Play Games
更多相關文章
  • Given a collection of distinct numbers, return all possible permutations. ...
  • Python 多進程多線程原理介紹以及原創的Python多進程和多線程模板 ...
  • 創建內部類的對象可用 .this和.new來創建。 具體看代碼 在這段代碼中,我用pri的一個實例創建了一個inner類的對象b。由於非靜態內部類必須依附在外部類的實例上,所以在代碼的末尾證實通過.this返回的外部類的對象c與外部類的實例對象a是同一個對象。 在這段代碼中,我還在外部pri中創建了 ...
  • [root@ ~/learn_code/C++_learn]$ tree.├── main├── main.cpp├── test│ ├── libtest.a│ ├── makefile│ ├── test.c│ ├── test.h│ ├── test.i│ ├── test.o│ └── te ...
  • 05 樹7:堆中的路徑 Description: 將一系列給定數字插入一個初始為空的小頂堆H[]。隨後對任意給定的下標i,列印從H[i]到根結點的路徑。 Input: 每組測試第1行包含2個正整數N和M(≤1000),分別是插入元素的個數、以及需要列印的路徑條數。下一行給出區間[ 10000, 10 ...
  • Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have ex ...
  • 輸出python3.x : print() 函數 >>> print('hello, world')使用print()函數或語句可以接受多個字元串,用逗號“,”隔開,就可以連成一串輸出。print()函數或語句會依次列印每個字元串,遇到逗號“,”會輸出一個空格>>> print('hello', ' ...
  • 一、java 開發環境的搭建 這裡主要說的是在windows 環境下怎麼配置環境。 1.首先安裝JDK java的sdk簡稱JDK ,去其官方網站下載最近的JDK即可。。http://www.oracle.com/technetwork/java/javase/downloads/jdk7-down ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...