nginx簡介及安裝

若是你據說過apache軟件,那麼就會很快熟悉nginx軟件,與apache軟件相似,nginx(engine x)是一個開源的,支持高性能,高併發的www的服務和代理服務軟件linux


nginx因具備高併發(特別是靜態資源)、佔用系統資源少等,且功能豐富nginx

在功能應用方面,nginx不可是一個優秀的web服務軟件,還具備反向代理負載均衡和緩存服務功能,在反向代理、負載均衡方面,它相似於大名鼎鼎的LVS負載均衡及HAPROXY等專業代理軟件,可是NGINX部署起來更方便,在緩存服務功能方面,它又相似於Squid等專業的緩存服務軟件c++

總結一下nginx的幾大功能:
web

1)www web服務正則表達式

2)負載均衡(也能夠叫作反向代理,也能夠叫作proxy)express

3)web 緩存(至關於squid,CDN主要使用squid) apache


nginx特色:瀏覽器

一、配置簡單、靈活、輕量緩存

二、高併發(靜態小文件),幾萬的併發
併發

三、佔用資源少 2W併發,開10個線程服務,內存才消耗幾百M



nginx安裝

1.安裝nginx須要安裝pcre庫與openssl

pcre的全稱爲 perl compatible regular expressions ,中文譯爲「perl兼容正則表達式」,安裝pcre庫是爲了使nginx支持具有URL重寫功能的rewrite模塊,若是不安裝pcre庫,則nginx沒法使用rewrite功能,nginx的rewrite模塊功能幾乎是企業應用必須的

yum install -y pcre pcre-devel 

rpm -qa pcre pcre-devel

備註:rpm安裝的pcre版本有些低,不過通常狀況下不影響使用

openssl是加密的做用,nginx在使用https服務的時候會使用到此模塊

yum install openssl openssl-devel

rpm -qa  openssl openssl-devel


依賴包安裝
yum -y install gcc gcc-c++ automake autoconf zlib zlib-devel openssl openssl-devel pcre pcre-devel


yum install libjpeg libjpeg-devel -y

yum install libxml2 libxml2-devel zlib zlib-devel  ncurses ncurses-devel curl curl-devel -y

yum install gd gd2 gd-devel gd2-devel -y


有一些包是爲了之後作nginx負載均衡而安裝的



2.選擇並下載合適的nginx版本

nginx官方網站爲:www.nginx.org 能夠看到nginx的全部版本

nginx的軟件有三種版本,穩定版、開發版、及歷史穩定版

選擇標準以下:

開發版更新快,新功能多,但bug多

穩定版的更新很慢,可是bug較少,能夠作爲企業生產環境的首選。

可是在實際工做中,儘可能避免使用最新的穩定版,應該選擇比已出版原本的最新版本晚6-10個月的版本比較好

官網的解釋是這樣的:

Nginx官網提供了三個類型的版本
Mainline version:Mainline 是 Nginx 目前主力在作的版本,能夠說是開發版
Stable version:最新穩定版,生產環境上建議使用的版本
Legacy versions:遺留的老版本的穩定版

綜上所述,咱們選擇 1.8.1 


3.開始安裝nginx

mkdir -p /app/3rd/nginx

cd /app/3rd/nginx

wget http://nginx.org/download/nginx-1.8.1.tar.gz



4.nginx優化選項

內存優化jemalloc

 wget -P /opt  http://mirrors.linuxeye.com/oneinstack/src/jemalloc-4.2.1.tar.bz2
 cd /app/packages
 tar jxf jemalloc-4.2.1.tar.bz2
 cd jemalloc-4.2.1
 ./configure && make -j `grep processor /proc/cpuinfo|wc -l` && make install
 echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
 ldconfig


查看jemalloc運行狀況
lsof -n | grep jemalloc

(此項須要nginx安裝啓動完畢後纔會能夠看到)


5.編譯

useradd -M -s /sbin/nologin www   



./configure --help 查看編譯選項

./configure --prefix=/app/zpy/nginx/ \
--user=www \
--group=www \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_flv_module \
--with-pcre \
--with-pcre-jit \
--with-ld-opt='-ljemalloc'
查看編譯結果:

echo $?

0

安裝

make
make install




6.啓動nginx

1)檢查nginx的配置文件及語法:

/app/zpy/nginx/sbin/nginx -t

nginx: the configuration file /app/zpy/nginx-1.8.1//conf/nginx.conf syntax is ok

nginx: configuration file /app/zpy/nginx-1.8.1//conf/nginx.conf test is successful


2)檢查80端口是否被佔用:

[root@elkzabbix01 zpy]# netstat -tunpl | grep 80

tcp        0      0 :::80       :::*      LISTEN      20804/httpd 

發現80已經被httpd apache佔用了,因此咱們中止 httpd 

service httpd stop

chkconfig httpd off

3)啓動

/app/zpy/nginx/sbin/nginx 

[root@elkzabbix01 zpy]# netstat -tunpl | grep 80

tcp     0    0 0.0.0.0:80    0.0.0.0:*     LISTEN      8398/nginx  


瀏覽器輸入http://10.0.70.3能夠看到nginx頁面

或者 curl 10.0.70.3 


若是你去一個公司以後發現nginx已經部署好了,你想知道nginx版本或者想知道nginx安裝的時候使用了哪些模塊怎麼辦??


執行以下命令: /app/zpy/nginx/sbin/nginx -V

輸出:

nginx version: nginx/1.8.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --user=www --group=www --prefix=/app/zpy/nginx/ --with-http_stub_status_module --with-http_ssl_module

相關文章
相關標籤/搜索