【Java實(shí)戰(zhàn)項(xiàng)目】Migo商城2.0 Nginx的安裝與使用 三

來源:一葉知秋
作者:知秋

因這方面的網(wǎng)上的文檔很多,在此就不過多仔細(xì)說明了,因操作過程一致,這里拿nginx-1.9.12來做示例

Nginx的特點(diǎn)

  • 1、Nginx 專為性能優(yōu)化而開發(fā),性能是其最重要的考量,實(shí)現(xiàn)上非常注重效率 。它支持內(nèi)核 Poll 模型,能經(jīng)受高負(fù)載的考驗(yàn),有報(bào)告表明能支持高達(dá) 50,000 個(gè)并發(fā)連接數(shù)
  • 2、Nginx 具有很高的穩(wěn)定性,Nginx 采取了分階段資源分配技術(shù),使得它的 CPU 與內(nèi)存占用率非常低。
  • 3、Nginx 代碼質(zhì)量非常高,代碼很規(guī)范,手法成熟,模塊擴(kuò)展也很容易。
  • 4、Nginx 還可以實(shí)現(xiàn)無緩存的反向代理加速,簡單的負(fù)載均衡和容錯(cuò)。

Nginx的應(yīng)用場景

  • 1、http服務(wù)器。Nginx是一個(gè)http服務(wù)可以獨(dú)立提供http服務(wù)。可以做網(wǎng)頁靜態(tài)服務(wù)器。
  • 2、虛擬主機(jī)??梢詫?shí)現(xiàn)在一臺(tái)服務(wù)器虛擬出多個(gè)網(wǎng)站。例如個(gè)人網(wǎng)站使用的虛擬主機(jī)。
  • 3、反向代理,負(fù)載均衡。當(dāng)網(wǎng)站的訪問量達(dá)到一定程度后,單臺(tái)服務(wù)器不能滿足用戶的請求時(shí),需要用多臺(tái)服務(wù)器集群可以使用nginx做反向代理。并且多臺(tái)服務(wù)器可以平均分擔(dān)負(fù)載,不會(huì)因?yàn)槟撑_(tái)服務(wù)器負(fù)載高宕機(jī)而某臺(tái)服務(wù)器閑置的情況

在下載源碼包并編譯之前,先安裝好開發(fā)環(huán)境:

[root@code ~]# yum install pcre-devel openssl-devel -y 使nginx支持正則表達(dá)式及https加密
[root@code ~]# yum groupinstall “Desktop Platform Development” “Development tools” -y 開發(fā)包

具體的nginx支持的庫還是專門說下算了:

nginx是C語言開發(fā),建議在linux上運(yùn)行

gcc

安裝nginx需要先將官網(wǎng)下載的源碼進(jìn)行編譯,編譯依賴gcc環(huán)境,如果沒有g(shù)cc環(huán)境,需要安裝gcc:yum install gcc-c++

PCRE

PCRE(PerlCompatible Regular Expressions)是一個(gè)Perl庫,包括 perl 兼容的正則表達(dá)式庫。nginx的http模塊使用pcre來解析正則表達(dá)式,所以需要在linux上安裝pcre庫。

yuminstall -y pcre pcre-devel

注:pcre-devel是使用pcre開發(fā)的一個(gè)二次開發(fā)庫。nginx也需要此庫。

zlib

zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內(nèi)容進(jìn)行g(shù)zip,所以需要在linux上安裝zlib庫。

openssl

OpenSSL是一個(gè)強(qiáng)大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測試或其它目的使用。
nginx不僅支持http協(xié)議,還支持https(即在ssl協(xié)議上傳輸http),所以需要在linux安裝openssl庫。

yuminstall -y openssl openssl-devel

編譯安裝

[root@code ~]# groupadd -r nginx 創(chuàng)建系統(tǒng)組nginx
[root@code ~]# useradd -g nginx -s /sbin/nologin -r nginx 創(chuàng)建用戶nginx并添加進(jìn)nginx組
[root@code ~]# yum install wget -y 安裝wget工具
[root@code ~]# wget http://nginx.org/download/nginx-1.9.12.tar.gz 下載源碼包到本地
[root@code ~]# tar xf nginx-1.9.12.tar.gz 解壓源碼包
[root@code ~]# cd nginx-1.9.12
[root@code nginx-1.9.12]# mkdir -pv /data/logs/nginx 創(chuàng)建ngnix日志目錄
[root@code nginx-1.9.12]# ./configure \
--prefix=/usr/local/nginx \ 
--user=nginx --group=nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \ 
--with-http_image_filter_module \ 
--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 \
--with-http_gunzip_module \ 
--with-http_stub_status_module \ 
--http-log-path=/data/logs/nginx/access.log \ 
--error-log-path=/data/logs/nginx/error.log 配置出編譯文件,其中的編譯選項(xiàng)我會(huì)在文章后面列出
[root@code nginx-1.9.12]# make & make install 編譯并安裝

注意:上邊將臨時(shí)文件目錄指定為/var/temp/nginx,需要在/var下創(chuàng)建temp及nginx目錄

下面是編譯后生成的所有文件:

/usr/local/nginx/
├── conf
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── mime.types.default
│ ├── nginx.conf 主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default
│ └── win-utf
├── html 網(wǎng)站根目錄
│ ├── 50x.html
│ └── index.html
├── logs
└── sbin
   └── nginx nginx主程序

修改Nginx的主頁文件(為了測試): vim /usr/local/nginx/html/index.html

修改內(nèi)容保存:

<h1>Welcome!</h1>
<h2>This is Nginx site</h2>

啟動(dòng)nginx服務(wù)

[root@code ~]# /usr/local/nginx/sbin/nginx 沒有報(bào)錯(cuò)就是啟動(dòng)正常
[root@code ~]# ss -tnl | grep “80” 查看80端口是否已經(jīng)啟動(dòng)
LISTEN   0   128   :80   :*  ##80端口已經(jīng)啟動(dòng)

測試頁面是否能正常訪問

[root@code ~]# curl http://192.168.10.1
<h1>Welcome!</h1> 
<h2>This is Nginx site</h2>

輸出以上信息表示能夠正常訪問

Nginx的配置

  1. 配置http服務(wù)器,配置虛擬機(jī)

a) 通過端口區(qū)分,一個(gè)nginx可以同時(shí)監(jiān)聽多個(gè)端口
b) 通過ip區(qū)分,可以在一臺(tái)服務(wù)器上綁定多個(gè)ip來根據(jù)ip區(qū)分。(很少使用)
c) 通過域名區(qū)分,最常見的方式。

  1. 配置反向代理、負(fù)載均衡

a) 需要修改的配置文件:nginx.conf;
b) http節(jié)點(diǎn)下一個(gè)server節(jié)點(diǎn)就是一個(gè)虛擬機(jī)

關(guān)于域名這個(gè)東西這里就不解釋了,不懂可以谷歌百度的。這里把圖中的反向代理,負(fù)載均衡再多說兩句的,其實(shí)圖里都講到了

作為反向代理服務(wù)器時(shí),nginx只是轉(zhuǎn)發(fā)請求??梢耘渲枚鄠€(gè)tomcat,每個(gè)tomcat對應(yīng)不同的域名

負(fù)載均衡用圖來表示下


另附平常用的比較多的命令

進(jìn)入sbin目錄 命令 cd /usr/local/nginx/sbin

Nginx的關(guān)閉:[root@localhost sbin]# ./nginx -s stop

Nginx重新加載配置文件:[root@localhost sbin]# ./nginx -s reload

驗(yàn)證配置文件是否正確的命令:

a、方法一:/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
b、進(jìn)入sbin目錄 命令 cd /usr/local/nginx/sbin
驗(yàn)證命令為 ./nginx -t
出現(xiàn) XXXXXX is ok 表示配置文件沒問題

到此,nginx結(jié)束,不過,平時(shí)可以用windows下的nginx做開發(fā)的,簡單易用。具體要用的東西,解壓文件到一個(gè)全英文的路徑下比如d:/aaa/

三個(gè)命令:(在 CMD 中執(zhí)行)

  • 啟動(dòng):start nginx.exe
  • 停止:nginx.exe -s stop
  • 重新加載:nginx.exe -s reload

只有2個(gè)進(jìn)程nginx才算是真正的啟動(dòng)成功:

往期回顧:


更多內(nèi)容請關(guān)注:極樂科技

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,569評論 1 41
  • nginx在工作中已經(jīng)有好幾個(gè)環(huán)境在使用了,每次都是重新去網(wǎng)上扒博客,各種編譯配置,今天自己也整理一份安裝文檔和n...
    AndyChin閱讀 2,326評論 0 4
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧!Ngi...
    JokerW閱讀 32,781評論 24 1,002
  • Nginx入門指南 一.Nginx概述: 1.什么是Nginx? Nginx(發(fā)音同engine x)是一個(gè)網(wǎng)頁服...
    qianghaohao閱讀 1,485評論 0 5
  • 千年前的呼喚, 濕潤了我的眼。 我化身彎曲的河流, 漂流在幽邃而原始的綠野。 我環(huán)繞過她曼妙的曲線, 她如水草一般...
    朝徹?cái)t寧閱讀 367評論 10 7