centos 下 linux 安裝nignx
一、下載nignx
官方網站: http://nginx.org/
二、上傳nignx原始碼到linux
三、要求的安裝環境
- 需要安裝gcc的環境 由於是C語言開發的。yum install gcc-c++
- 第三方的開發包:
(一)、 PCRE
PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的正則表示式庫。nginx的http模組使用pcre來解析正則表示式,所以需要在linux上安裝pcre庫。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre開發的一個二次開發庫。nginx也需要此庫。
( 二)、 zlib
zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,所以需要在linux上安裝zlib庫。
yum install -y zlib zlib-devel
( 三)、 openssl
OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。
nginx不僅支援http協議,還支援https(即在ssl協議上傳輸http),所以需要在linux安裝openssl庫。
yum install -y openssl openssl-devel
四、安裝步驟
1、減壓
tar zxvf nginx-1.8.0.tar.gz --z 包格式 --x 減壓縮 --c 加壓 --v 檢視 --f 包名
src下都是c的原始碼
得到原始碼之後需要編譯 不能直接 make 因為沒有 makefile檔案的
帶x的檔案都是可執行的 使用configure來生成makefile
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
\ 表示一行命令沒寫完要換行
prefix檔案儲存目錄
注意:啟動nginx之前,上邊將臨時檔案目錄指定為/var/temp/nginx,需要在/var下建立temp及nginx目錄
如果報錯:
如果提示:
checking for OS
+ Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... not found
解決:
yum -y install gcc gcc-c++ autoconf automake make
這樣就會生成一個MakeFile檔案
現在 make 編譯成二進位制檔案 機器碼 是可執行的檔案
make
安裝: 不用prefix了因為在弄makefile的時候已經指定了
make install
conf 配置檔案
html 登入 歡迎頁 訪問的目錄
sbin 有一個ngnix 服務
啟動ngnix: 不用start直接回車
./nginx
啟動失敗了,沒有client目錄
mkdir /var/temp/nginx -p
--可以不寫client目錄的
mkdir /var/temp/nginx/client -p
這樣就啟動了
檢視程序:
ps aux|grep nginx
--前面的輸出作為後面的輸入
--a 顯示所有
--u 所有使用者下面
--x 所有終端下面的
master worker 必須存在不染就不好使
預設80埠 就是html下面的index.html
關閉
./nginx -s stop
--推薦使用
./nginx -s quit
比如nginx正在提供一些高速服務 如果改了一些配置那麼是否需要關閉重啟才行呢?
這樣的話服務會中斷一兩秒 這樣就不好
nginx提供一個開機狀態重新整理配置檔案
[[email protected] nginx]# sbin/nginx -s reload
--我不在sbin目錄下的