Ubuntu上安裝Nginx服務(wù)器程序及簡(jiǎn)單的環(huán)境配置小結(jié)
Ubuntu 從官方源安裝 Nginx
cd ~ wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key sudo nano /etc/apt/sources.list # 添加以下兩句 deb http://nginx.org/packages/ubuntu/ precise nginx deb-src http://nginx.org/packages/ubuntu/ precise nginx sudo apt-get update sudo apt-get install nginx
Ubuntu 從PPA源安裝 Nginx :
sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx
Ubuntu 從常規(guī)源安裝 Nginx :
sudo apt-get install nginx
編譯安裝Nginx
wget http://nginx.org/packages/mainline/ubuntu/pool/nginx/n/nginx/nginx_1.5.7-1~precise_i386.deb wget http://nginx.org/download/nginx-1.5.7.tar.gz tar xzf nginx-1.5.7.tar.gz cd nginx-1.5.7
(注意:Nginx1.5.7是Mainline版而非Stable版)
為了方便開發(fā)和管理,我在根目錄下新建了一個(gè)png目錄,并且目錄所有者設(shè)置為當(dāng)前用戶,nginx就編譯在/png/nginx/1.5.7下面:
sudo mkdir /png sudo chown eechen:eechen /png
運(yùn)行用戶我定義為png:png,所以我需要新建這樣一個(gè)用戶:
sudo addgroup png --system sudo adduser png --system --disabled-login --ingroup png --no-create-home --home /nonexistent --gecos "png user" --shell /bin/false
(新建用戶的命令可以參考官方Deb包里的預(yù)安裝腳本DEBIAN/preinst)
編譯參數(shù)參考了Nginx官方提供的Deb包(nginx -V可見).
./configure \
--prefix=/png/nginx/1.5.7 \ --sbin-path=/png/nginx/1.5.7/sbin/nginx \ --conf-path=/png/nginx/1.5.7/conf/nginx.conf \ --error-log-path=/png/nginx/1.5.7/var/log/error.log \ --http-log-path=/png/nginx/1.5.7/var/log/access.log \ --pid-path=/png/nginx/1.5.7/var/run/nginx.pid \ --lock-path=/png/nginx/1.5.7/var/run/nginx.lock \ --http-client-body-temp-path=/png/nginx/1.5.7/var/cache/client_temp \ --http-proxy-temp-path=/png/nginx/1.5.7/var/cache/proxy_temp \ --http-fastcgi-temp-path=/png/nginx/1.5.7/var/cache/fastcgi_temp \ --http-uwsgi-temp-path=/png/nginx/1.5.7/var/cache/uwsgi_temp \ --http-scgi-temp-path=/png/nginx/1.5.7/var/cache/scgi_temp \ --user=png \ --group=png \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_stub_status_module \ --with-mail \ --with-mail_ssl_module \ --with-file-aio \ --with-ipv6
注意:這一步按錯(cuò)誤提示安裝依賴的包,這時(shí)就是apt要發(fā)威的時(shí)候了,比如我的系統(tǒng)安裝了這些包:
sudo apt-get -y install \
build-essential \ autoconf \ libtool \ libxml2 \ libxml2-dev \ openssl \ libcurl4-openssl-dev \ libbz2-1.0 \ libbz2-dev \ libjpeg-dev \ libpng12-dev \ libfreetype6 \ libfreetype6-dev \ libldap-2.4-2 \ libldap2-dev \ libmcrypt4 \ libmcrypt-dev \ libmysqlclient-dev \ libxslt1.1 \ libxslt1-dev \ libxt-dev \ libpcre3-dev
安裝好這些包后,下次編譯新版Nginx就不用再裝了,而且基本也滿足編譯PHP時(shí)configure的需求.
好了,configure成功后就可以編譯安裝了:
time make && make install
time主要用來查看本次編譯耗時(shí).
編譯好后可以看看這個(gè)家伙的個(gè)頭:
du -sh /png/nginx/1.5.7/sbin/nginx
5.5M /png/nginx/1.5.7/sbin/nginx
環(huán)境簡(jiǎn)單配置總結(jié)
減小Nginx編譯后的文件大小:
編輯源文件 nginx-1.5.7/auto/cc/gcc 去除Debug信息(注釋掉即可):
# debug # CFLAGS="$CFLAGS -g"
這樣編譯后的主程序大小則為700多K,和Nginx官方提供的Deb包程序大小相近.
另外configure時(shí)去掉一些不需要的模塊,編譯后的可執(zhí)行文件會(huì)更小.
當(dāng)然,我需要一個(gè)服務(wù)腳本用來管理Nginx,這時(shí)同樣可以借助官方Deb包里提供的服務(wù)腳本etc/init.d/nginx.
我把它放到/png/nginx/1.5.7/nginx,對(duì)開頭定義的幾個(gè)值(13到19行)進(jìn)行稍加修改:
PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC=nginx NAME=nginx CONFFILE=/etc/nginx/nginx.conf DAEMON=/usr/sbin/nginx PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME 改為 PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC=nginx NAME=nginx CONFFILE=/png/nginx/1.5.7/conf/nginx.conf DAEMON=/png/nginx/1.5.7/sbin/nginx PIDFILE=/png/nginx/1.5.7/var/run/$NAME.pid SCRIPTNAME=/png/nginx/1.5.7/$NAME
啟動(dòng)前先創(chuàng)建一個(gè)cache目錄,否則會(huì)提示出錯(cuò):
mkdir /png/nginx/1.5.7/var/cache
啟動(dòng)Nginx:
sudo /png/nginx/1.5.7/nginx start
測(cè)試頁面:
curl -I `hostname`
看一下端口:
sudo netstat -antp|grep nginx
查看一下它占用的內(nèi)存:
htop按F4過濾nginx
用top同樣能看到類似內(nèi)容:
top -b -n1|head -n7 && top -b -n1|grep nginx
主要看RES這個(gè)值,常駐內(nèi)存(resident),不包括SWAP空間的物理內(nèi)存, 單位為KB,%MEM就是以RES為參照對(duì)象.
可以看到Nginx兩個(gè)進(jìn)程占用的物理內(nèi)存加起來不到2M,內(nèi)存占用非常小.
另外top里的RES這個(gè)值對(duì)應(yīng)ps aux里的RSS這個(gè)值:
ps aux|head -n1 && ps aux|grep nginx
還有我們可以看到Nginx的工人進(jìn)程只有一個(gè)線程:
cat /proc/25047/status|grep Threads
Threads: 1
其中25047是Nginx工人進(jìn)程PID號(hào).
把Nginx做成系統(tǒng)服務(wù),開機(jī)自啟動(dòng):
sudo ln -s /png/nginx/1.5.7/nginx /etc/init.d/png-nginx sudo update-rc.d png-nginx defaults #開機(jī)自啟動(dòng) sudo update-rc.d -f png-nginx remove # 以后不想開機(jī)自啟動(dòng)可以這樣禁止 sudo service png-nginx reload #這樣就可以用service來管理Nginx服務(wù)了,比如重載配置
最后,Nginx的主配置文件位于/png/nginx/1.5.7/conf/nginx.conf,自己按需配置.
相關(guān)文章
Nginx虛擬主機(jī)的搭建的實(shí)現(xiàn)步驟
本文主要介紹了Nginx虛擬主機(jī)的搭建的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Mac上搭建nginx+rtmp直播服務(wù)器的步驟詳解
最近的直播很火,所以這篇文章跟大家分享了在Mac上搭建nginx+rtmp直播服務(wù)器的步驟,文章通過一步步圖文介紹的很詳細(xì),有需要的朋友們可以參考借鑒。2016-09-09Nginx服務(wù)器做負(fù)載均衡反向代理的超級(jí)攻略
這篇文章主要介紹了Nginx服務(wù)器做負(fù)載均衡反向代理的超級(jí)攻略,包括緩存的相關(guān)設(shè)定以及負(fù)載均衡的一些常見問題的解決,極力推薦!需要的朋友可以參考下2015-08-08Nginx根據(jù)url中的path動(dòng)態(tài)轉(zhuǎn)發(fā)到upstream的實(shí)現(xiàn)
這篇文章主要介紹了Nginx根據(jù)url中的path動(dòng)態(tài)轉(zhuǎn)發(fā)到upstream的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Nginx + consul + upsync 完成動(dòng)態(tài)負(fù)載均衡的方法詳解
這篇文章主要介紹了Nginx + consul + upsync 完成動(dòng)態(tài)負(fù)載均衡,需要的朋友可以參考下2020-11-11使用nginx如何解決Access-Control-Allow-Origin問題
這篇文章主要介紹了使用nginx如何解決Access-Control-Allow-Origin問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Nginx配置參數(shù)中文說明詳解(負(fù)載均衡與反向代理)
最近在看高性能Linux服務(wù)器構(gòu)建實(shí)戰(zhàn)的Nginx章節(jié),對(duì)其nginx介紹的非常詳細(xì),現(xiàn)把經(jīng)常用到的Nginx配置參數(shù)中文說明摘錄和nginx做負(fù)載均衡的本人真實(shí)演示實(shí)例抄錄下來以便以后查看2020-03-03