2. 操作系統(tǒng)
版本:CentOS 6.6 x86_64
安裝方式:Minimal
3. 虛擬化環(huán)境
VMware Workstation 12.1.0
4. nginx
版本:nginx-1.10.1.tar.gz
安裝方式:編譯源碼安裝
二、下載nginx源碼包
在bash中運(yùn)行以下命令,下載nginx的源碼包:
cd /root/Downloads
# 下載nginx源碼包
wget http://nginx.org/download/nginx-1.10.1.tar.gz
# 下載pcre源碼包
wget http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
# 下載zlib源碼包
wget http://zlib.net/zlib-1.2.8.tar.gz
三、安裝依賴包
在bash中運(yùn)行以下命令,在服務(wù)器上安裝nginx的依賴包:
yum –disablerepo=\* –enablerepo=c6-media install -y openssl openssl-devel
在bash中運(yùn)行以下命令,安裝編譯環(huán)境:
yum –disablerepo=\* –enablerepo=c6-media groupinstall -y “Development Tools”
四、創(chuàng)建用戶和組
在bash中運(yùn)行以下命令,為nginx創(chuàng)建用戶和組:
groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx
五、解壓縮源碼包
在bash中運(yùn)行以下命令,解壓縮nginx和依賴包的源碼包:
tar xvzf nginx-1.10.1.tar.gz
tar xvzf pcre-8.38.tar.gz
tar xvzf zlib-1.2.8.tar.gz
cd nginx-1.10.1
六、編譯安裝
在bash中運(yùn)行以下命令,編譯安裝nginx:
# 配置編譯選項(xiàng)
./configure \
–prefix=/usr/local/nginx \
–user=nginx \
–group=nginx \
–with-select_module \
–with-poll_module \
–with-http_ssl_module \
–with-pcre=/root/Downloads/pcre-8.38 \
–with-pcre-jit \
–with-zlib=/root/Downloads/zlib-1.2.8
# 編譯安裝
make && make install
七、配置自動(dòng)啟動(dòng)服務(wù)
在bash中運(yùn)行以下命令,將nginx配置為自動(dòng)啟動(dòng)的系統(tǒng)服務(wù):
vi /etc/init.d/nginx
在上述init腳本中輸入并保存以下內(nèi)容:
#!/bin/sh
#
# nginx – this script starts and stops the nginx daemon
#
# chkconfig: – 85 15
# description: NGINX is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/pid/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ “$NETWORKING” = “no” ] && exit 0
nginx=”/usr/local/nginx/sbin/nginx”
prog=$(basename $nginx)
NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”
lockfile=/usr/local/nginx/lock/nginx.lock
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep “configure arguments:” | sed ‘s/[^*]*–user=\([^ ]*\).*/\1/g’ -`
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: ”
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $”Reloading $prog: ”
killproc $nginx -HUP
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
$1
;;
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
修改腳本權(quán)限,然后設(shè)置為隨系統(tǒng)自動(dòng)啟動(dòng):
mkdir -p /usr/local/nginx/pid
mkdir -p /usr/local/nginx/lock
chmod 755 /etc/init.d/nginx
chkconfig nginx on
配置環(huán)境變量:
sed -i ’80s/$/&:\/usr\/local\/nginx\/sbin/’ /etc/profile
source /etc/profile
至此,可以通過(guò)以下命令操作nginx服務(wù):
# 啟動(dòng)nginx服務(wù)
service nginx start
# 停止nginx服務(wù)
service nginx stop
# 重啟nginx服務(wù)
service nginx restart
# 查看nginx服務(wù)狀態(tài)
service nginx status
八、開啟gzip壓縮
在bash中運(yùn)行以下命令,為nginx開啟gzip壓縮功能,減少網(wǎng)絡(luò)帶寬占用:
# 配置pid文件位置
sed -i ‘9s/#pid logs\/nginx.pid;/pid pid\/nginx.pid;/’ /usr/local/nginx/conf/nginx.conf
# 啟用gzip壓縮
sed -i ’33s/#gzip on;/gzip on;/’ /usr/local/nginx/conf/nginx.conf
# 啟用gzip壓縮的小文件
sed -i ’33a\ gzip_min_length 1k;’ /usr/local/nginx/conf/nginx.conf
# gzip壓縮級(jí)別
sed -i ’34a\ gzip_comp_level 2;’ /usr/local/nginx/conf/nginx.conf
# 進(jìn)行壓縮的文件類型
sed -i ’35a\ gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;’ /usr/local/nginx/conf/nginx.conf
# 是否在http header中添加Vary: Accept-Encoding
sed -i ’36a\ gzip_vary on;’ /usr/local/nginx/conf/nginx.conf
# 禁用IE 6 gzip
sed -i ’37a\ gzip_disable “MSIE [1-6]\\.”;’ /usr/local/nginx/conf/nginx.conf
# 為ttf、otf和svg字體啟用gzip
sed -i ’38a\ gzip_types font/ttf font/otf image/svg+xml;’ /usr/local/nginx/conf/nginx.conf
# 上傳文件大尺寸
sed -i ’39a\ client_max_body_size 20m;’ /usr/local/nginx/conf/nginx.conf
九、開啟緩存
在bash中運(yùn)行以下命令,為nginx開啟靜態(tài)內(nèi)容緩存,減少網(wǎng)絡(luò)帶寬占用:
# 為圖片文件設(shè)置緩存
sed -i ’85a\\n’ /usr/local/nginx/conf/nginx.conf
sed -i ’86a\ location ~* ^.+\\.(ico|gif|jpg|jpeg|png)$ {‘ /usr/local/nginx/conf/nginx.conf
sed -i ’87a\ access_log off;’ /usr/local/nginx/conf/nginx.conf
sed -i ’88a\ expires 30d;’ /usr/local/nginx/conf/nginx.conf
sed -i ’89a\ }’ /usr/local/nginx/conf/nginx.conf
# 為文本文件設(shè)置緩存
sed -i ’90a\’ /usr/local/nginx/conf/nginx.conf
sed -i ’91a\ location ~* ^.+\\.(css|js|txt|xml|swf|wav)$ {‘ /usr/local/nginx/conf/nginx.conf
sed -i ’92a\ access_log off;’ /usr/local/nginx/conf/nginx.conf
sed -i ’93a\ expires 24h;’ /usr/local/nginx/conf/nginx.conf
sed -i ’94a\ }’ /usr/local/nginx/conf/nginx.conf
# 為靜態(tài)頁(yè)面設(shè)置緩存
sed -i ’95a\\n’ /usr/local/nginx/conf/nginx.conf
sed -i ’96a\ location ~* ^.+\\.(html|htm)$ {‘ /usr/local/nginx/conf/nginx.conf
sed -i ’97a\ expires 1h;’ /usr/local/nginx/conf/nginx.conf
sed -i ’98a\ }’ /usr/local/nginx/conf/nginx.conf
# 為字體設(shè)置緩存
sed -i ’99a\’ /usr/local/nginx/conf/nginx.conf
sed -i ‘100a\ location ~* ^.+\\.(eot|ttf|otf|woff|svg)$ {‘ /usr/local/nginx/conf/nginx.conf
sed -i ‘101a\ access_log off;’ /usr/local/nginx/conf/nginx.conf
sed -i ‘102a\ expires max;’ /usr/local/nginx/conf/nginx.conf
sed -i ‘103a\ }’ /usr/local/nginx/conf/nginx.conf
十、啟動(dòng)服務(wù)
在bash中運(yùn)行以下命令,啟動(dòng)nginx服務(wù):
service nginx start
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個(gè)人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個(gè)個(gè)人學(xué)習(xí)交流的平臺(tái),網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對(duì)作者和來(lái)源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請(qǐng)及時(shí)聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對(duì)此聲明的最終解釋權(quán)。