一、背景
最近在寫一些自己的專案,用到了nginx,所以自己動手來在Centos7上安裝nginx,以下是安裝步驟。
二、基本概念以及應用場景
1.什麼是nginx
Nginx是一款使用C語言開發的高效能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬併發連結,並且cpu、記憶體等資源消耗卻非常低,執行非常穩定。
2.Nginx的應用場景
1).http伺服器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。
2).虛擬主機。可以實現在一臺伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。
3).反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺伺服器不能滿足使用者的請求時,需要用多臺伺服器叢集可以使用nginx做反向代理。並且多臺伺服器可以平均分擔負載,不會因為某臺伺服器負載高當機而某臺伺服器閒置的情況。
三、安裝步驟
1.檢查並安裝所需的依賴軟體
1).gcc:nginx編譯依賴gcc環境
安裝命令:yum install gcc-c++
2).pcre:(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的正規表示式庫。nginx的http模組使用pcre來解析正規表示式.
安裝命令:yum install -y pcre pcre-devel
3).zlib:該庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip。
安裝命令:yum install -y zlib zlib-devel
4).openssl:一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。nginx不僅支援http協議,還支援https(即在ssl協議上傳輸http).
安裝命令:yum install -y openssl openssl-devel
2.下載nginx原始碼包
下載命令:wget http://nginx.org/download/nginx-1.12.0.tar.gz
3.解壓縮原始碼包並進入
1).解壓縮:tar -zxvf nginx-1.12.0.tar.gz
2).進入解壓縮後資料夾:cd nginx-1.12.0
4.配置編譯引數命令:(可以使用./configure --help查詢詳細引數)
./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
注:安裝之前需要手動建立上面指定的nginx資料夾,即/var/temp、/var/temp/nginx、/var/run/nginx/資料夾,否則啟動時報錯
5.編譯並安裝
命令:make && make install
可以進入/usr/local/nginx檢視檔案是否存在conf、sbin、html資料夾,若存在則安裝成功
四、基本使用
1.啟動nginx
1).進入安裝目錄
cd /usr/local/nginx/sbin/
2).啟動
./nginx
3).若報錯:[emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
需要檢視下是不是在/var/run資料夾下不存在nginx資料夾,不存在則新建
4).檢視是否啟動:ps -ef | grep nginx
如果有master和worker兩個程式證明啟動成功
注意:執行./nginx啟動nginx,這裡可以-c指定載入的nginx配置檔案,如下:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在啟動時預設載入conf/nginx.conf檔案,此檔案的地址也可以在編譯安裝nginx時指定./configure的引數(--conf-path= 指向配置檔案(nginx.conf))
2.停止
1).暴利kill(不推薦使用)
kill -9 processId
2).快速停止
cd /usr/local/nginx/sbin && ./nginx -s stop
此方式相當於先查出nginx程式id再使用kill命令強制殺掉程式
3).完整停止(建議使用)
cd /usr/local/nginx/sbin && ./nginx -s quit
此方式停止步驟是待nginx程式處理任務完畢進行停止
3.重啟及重新載入配置
1.先停止再啟動(建議使用)
./nginx -s quit && ./nginx
2.重新載入配置檔案
./nginx -s reload
4.測試
nginx安裝成功,啟動nginx,即可通過ip地址來訪問nginx: