企業實戰千萬PV的Nginx就得這麼安裝
已經上線六個個多月 現在非常穩定 這是現在的整理
Nginx 下載
wget http://nginx.org/download/nginx-1.10.3.tar.gz
Openssl 下載
Wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
Pcre 下載
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
下載 jemalloc
wget https://github.com/jemalloc/jemalloc/releases/download/4.5.0/jemalloc-4.5.0.tar.bz2
解壓源碼包後如下圖
使用ljemalloc內存優化工具優化Nginx
jemalloc是一個通用的malloc(3),實現強調碎片迴避和可擴展併發支持。jemalloc首先在2005年被用作FreeBSD libc分配器,從那時起它已經發現了許多依賴於其可預測的行爲的應用程序。2010年,jemalloc開發工作擴展到包括開發者支持功能,例如堆分析和廣泛的監視/調整掛鉤。現代的jemalloc版本繼續被集成回FreeBSD,因此通用性仍然至關重要。持續的開發努力趨向於使jemalloc成爲用於廣泛的苛刻應用的最佳分配器,並消除/減輕對現實世界應用具有實際影響的弱點。
安裝 jemalloc
接下來安裝Nginx
安裝一些依賴 yum -y install zlib-devel gcc gcc-c++
創建用戶 useradd -M -s /sbin/nologin www
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.1.0e --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc
模塊介紹
–with-http_stub_status_module //Nginx狀態監控模塊
–with-http_v2_module //配置Nginx支持HTTP2.0
–with-http_ssl_module //配置Nginx 支持HTTPS
–with-http_gzip_static_module //開啓Gzip靜態壓縮
–with-http_realip_module //獲取客戶端真是ip
–with-http_flv_module //爲Flash視頻(FLV)文件提供僞流服務器端支持
–with-http_mp4_module //爲MP4文件提供僞流服務器端支持。以.mp4,.m4v或.m4a文件擴展名
–with-openssl=../openssl-1.1.0e //指定Nginx ssl模塊依賴的ssl庫
–with-pcre=../pcre-8.39 //指定Nginx pcre模塊依賴的pcre庫
–with-pcre-jit //構建具有“即時編譯”支持的PCRE庫
–with-ld-opt= //傳遞給C鏈接器的其他參數
啓動Nginx查看端口監聽狀況成功如下圖
接下來編寫配置nginx啓動腳本(Centos“6-7”通用)
安裝工具 yum -y install coreutils
安裝daemontools daemontools是用於管理UNIX服務的工具的集合
以下安裝方法來自官網 http://cr.yp.to/daemontools/install.html
mkdir -p /package
chmod 1755 /packagecd /package
下載 wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
gunzip daemontools-0.76.tar
tar -xpf daemontools-0.76.tar
rm -f daemontools-0.76.tar
cd admin/daemontools-0.76
安裝
sed -i ‘s/extern int errno;/#include <errno.h>/1’ ./src/error.h
package/install
腳本內容如下直接複製粘貼就可以用(請把上面環境配置好)
vim /etc/init.d/nginx
chmode +x /etc/init.d/nginx
Cent7 如下
Cent6 如下
#!/bin/sh # chkconfig: - 86 16 # http://goyun.org . /etc/rc.d/init.d/functions . /etc/sysconfig/network [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " $nginx -s stop retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 3 start } reload() { configtest || return $? echo -n $"Reloading $prog: " $nginx -s reload RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac