1. 程式人生 > >阿里雲伺服器上安裝nginx

阿里雲伺服器上安裝nginx

轉自:https://blog.csdn.net/u014209205/article/details/78921870

在阿里雲伺服器上安裝nginx中遇到一些問題,現將步驟羅列下,
環境是:centos7.4   nginx1.12.2
1.安裝gcc
        yum install gcc-c++
2.PCRE pcre-devel 安裝

        PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 相容的正則表示式庫。nginx 的 http 模組使用 pcre 來解析正則表示式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx也需要此庫。

        命令:
        yum install -y pcre pcre-devel
3.zlib 安裝

        zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。

        命令:
        yum install -y zlib zlib-devel
4.OpenSSL 安裝
        OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程式供測試或其它目的使用。

        nginx 不僅支援 http 協議,還支援 https(即在ssl協議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫。

        yum install -y openssl openssl-devel
5.下載解壓

        在nignx官網上下載,上傳到阿里雲伺服器後解壓

        tar -zxvf nginx-1.12.0.tar.gz
6.安裝
        首先在解壓後的檔案加下執行
        ./configure
        也可以自定義配置。
        然後再在解壓後的目錄下執行

        make install 進行安裝
7.啟動
        預設是安裝在/usr/local/nginx
        cd /usr/local/nginx/sbin/
        ./nginx
        指定配置檔案啟動
        ./nginx -c /usr/local/nginx/conf/nginx..conf
        ./nginx -s stop
        ./nginx -s quit
        ./nginx -s reload
8.重啟
        先停止再啟動(推薦):
        對 nginx 進行重啟相當於先停止再啟動,即先執行停止命令再執行啟動命令。如下:
        ./nginx -s quit
        ./nginx
        重新載入配置檔案:
        當 nginx的配置檔案 nginx.conf 修改後,要想讓配置生效需要重啟 nginx,使用-s reload不用先停止 ngin x再啟動 nginx 即可將配置資訊在 nginx 中生效,如下:
        ./nginx -s reload
9.設定開機自動重啟
        即在rc.local增加啟動程式碼就可以了。
        vi /etc/rc.local
        增加一行 /usr/local/nginx/sbin/nginx
        設定執行許可權:
        chmod 755 rc.local
---------------------
作者:時光鐘擺
來源:CSDN
原文:https://blog.csdn.net/u014209205/article/details/78921870
版權宣告:本文為博主原創文章,轉載請附上博文連結!

 

 

 

 

 

 

linux下安裝阿里雲伺服器的nginx

     https://blog.csdn.net/dabao87/article/details/80570050

 

在阿里雲伺服器上安裝nginx中遇到一些問題,現將步驟羅列下,
環境是:centos7.4   nginx1.12.2

1.安裝gcc

        yum install gcc-c++

 

2.PCRE pcre-devel 安裝

 

        PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 相容的正則表示式庫。nginx 的 http 模組使用 pcre 來解析正則表示式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx也需要此庫。

        命令:

        yum install -y pcre pcre-devel

 

3.zlib 安裝

 

        zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。

        命令:

        yum install -y zlib zlib-devel

 

4.OpenSSL 安裝

        OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程式供測試或其它目的使用。

 

 

        nginx 不僅支援 http 協議,還支援 https(即在ssl協議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫。

 

        yum install -y openssl openssl-devel

5.下載解壓

        在nignx官網上下載,上傳到阿里雲伺服器後解壓

        tar -zxvf nginx-1.12.0.tar.gz

6.安裝

        首先執行配置
        ./configure
        也可以自定義配置。
        然後在解壓後的目錄下執行

 

        make install

 

 

這個時候如果啟動nginx會報錯:

在centos下啟動nginx出現Failed to start nginx.service:unit not found

按照下面的步驟:

1. vim /etc/init.d/nginx

插入一下程式碼:

 
  1. #!/bin/sh

  2. # nginx - this script starts and stops the nginx daemin

  3. #

  4. # chkconfig: - 85 15

  5.  
  6. # description: Nginx is an HTTP(S) server, HTTP(S) reverse \

  7. # proxy and IMAP/POP3 proxy server

  8.  
  9. # processname: nginx

  10. # config: /usr/local/nginx/conf/nginx.conf

  11. # pidfile: /usr/local/nginx/logs/nginx.pid

  12.  
  13. # Source function library.

  14.  
  15. . /etc/rc.d/init.d/functions

  16.  
  17. # Source networking configuration.

  18.  
  19. . /etc/sysconfig/network

  20.  
  21. # Check that networking is up.

  22.  
  23. [ "$NETWORKING" = "no" ] && exit 0

  24.  
  25. nginx="/usr/local/nginx/sbin/nginx"

  26.  
  27. prog=$(basename $nginx)

  28.  
  29. NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

  30.  
  31. lockfile=/var/lock/subsys/nginx

  32.  
  33. start() {

  34.  
  35. [ -x $nginx ] || exit 5

  36.  
  37. [ -f $NGINX_CONF_FILE ] || exit 6

  38.  
  39. echo -n $"Starting $prog: "

  40.  
  41. daemon $nginx -c $NGINX_CONF_FILE

  42.  
  43. retval=$?

  44.  
  45. echo

  46.  
  47. [ $retval -eq 0 ] && touch $lockfile

  48.  
  49. return $retval

  50.  
  51. }

  52.  
  53.  
  54. stop() {

  55.  
  56. echo -n $"Stopping $prog: "

  57.  
  58. killproc $prog -QUIT

  59.  
  60. retval=$?

  61.  
  62. echo

  63.  
  64. [ $retval -eq 0 ] && rm -f $lockfile

  65.  
  66. return $retval

  67.  
  68. }

  69.  
  70.  
  71.  
  72. restart() {

  73.  
  74. configtest || return $?

  75.  
  76. stop

  77.  
  78. start

  79.  
  80. }

  81.  
  82.  
  83. reload() {

  84.  
  85. configtest || return $?

  86.  
  87. echo -n $"Reloading $prog: "

  88.  
  89. killproc $nginx -HUP

  90.  
  91. RETVAL=$?

  92.  
  93. echo

  94.  
  95. }

  96.  
  97. force_reload() {

  98.  
  99. restart

  100.  
  101. }

  102.  
  103.  
  104. configtest() {

  105.  
  106. $nginx -t -c $NGINX_CONF_FILE

  107.  
  108. }

  109.  
  110.  
  111.  
  112. rh_status() {

  113.  
  114. status $prog

  115.  
  116. }

  117.  
  118.  
  119. rh_status_q() {

  120.  
  121. rh_status >/dev/null 2>&1

  122.  
  123. }

  124.  
  125. case "$1" in

  126.  
  127. start)

  128.  
  129. rh_status_q && exit 0

  130. $1

  131. ;;

  132.  
  133. stop)

  134.  
  135.  
  136. rh_status_q || exit 0

  137. $1

  138. ;;

  139.  
  140. restart|configtest)

  141. $1

  142. ;;

  143.  
  144. reload)

  145. rh_status_q || exit 7

  146. $1

  147. ;;

  148.  
  149.  
  150. force-reload)

  151. force_reload

  152. ;;

  153. status)

  154. rh_status

  155. ;;

  156.  
  157.  
  158. condrestart|try-restart)

  159.  
  160. rh_status_q || exit 0

  161. ;;

  162.  
  163. *)

  164.  
  165. echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

  166. exit 2

  167.  
  168. esac

用命令

cd /etc/init.d

 

4. 依此執行以下命令

# chmod 755 /etc/init.d/nginx

# chkconfig --add nginx   (注意add前面是兩個短橫線-)

 

5. 開啟nginx

# service nginx start

這樣的之後就表示已經成功。

成功!!!

參考:https://blog.csdn.net/u014209205/article/details/78921870

參考:https://www.cnblogs.com/ansibee/p/8087476.html

 

 

 

 

 

 

版權宣告:如果此問題解答不清楚,請加QQ群113191612諮詢 https://blog.csdn.net/songchuan0201/article/details/62037010

重啟伺服器後,nginx服務起不來了,用命令 service nginx start,報如下錯誤:

nginx: [error] open() "/alidata/server/nginx/logs/nginx.pid" failed (2: No such file or directory)

解決辦法:在logs目錄下手動建立一個 nginx.pid檔案

再次啟動nginx服務,又報下面錯誤:

nginx: [emerg] open() "/usr/local/nginx/logs/access.log" failed (21: Is a directory)


看了網上好多解決辦法,都是用 -c來指向nginx的配置檔案,但是不行,根據錯誤提示,看到access.log是一個資料夾,來到logs目錄下,發現重啟完伺服器後,access.log確實變成了資料夾,把這資料夾刪掉,重新建立一個access.log檔案, 命令:touch access.log

再次啟動nginx服務,報埠被佔用

Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)


解決辦法:使用命令關閉佔用80埠的程式

sudo fuser -k 80/tcp


再次啟動nginx服務,成功,解決了兩個半小時。。。
---------------------
作者:小橋流水人家007
來源:CSDN
原文:https://blog.csdn.net/songchuan0201/article/details/62037010
版權宣告:本文為博主原創文章,轉載請附上博文連結!