1.首先安裝依賴包(依賴包有點多,我們采用yum的方式來安裝)
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
2.將nginx-1.7.6.tar.gz上傳到/usr/local/下
tar -zxvf nginx-1.7.6.tar.gz
3.編譯
cd nginx-1.7.6
./configure
make
make install
4.啟動
## 檢查配置文件是否正確 # /usr/local/nginx-1.6/sbin/nginx -t # ./sbin/nginx -V # 可以看到編譯選項 ## 啟動、關閉 # ./sbin/nginx # 默認配置文件 conf/nginx.conf,-c 指定 # ./sbin/nginx -s stop 或 pkill nginx ## 重啟,不會改變啟動時指定的配置文件 # ./sbin/nginx -s reload 或 kill -HUP `cat /usr/local/nginx-1.6/logs/nginx.pid`
5.將nginx添加到服務中
直接復制nginx 文件到/etc/init.d/ 目錄下即可
cp nginx /etc/inin.d/
然后可以通過service 的指令進行啟動,由於是使用了nginx的腳本,所以指令的參數有些不同
1 啟動: service nginx 2 停止: service nginx -s stop 3 重啟: service nginx -s reload
自己編寫啟動腳本:
#!/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: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/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" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 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 killall -9 nginx } 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
6.加入開機啟動
1. vi /etc/rc.local 2. 在文件加入一行:/etc/init.d/nginx start
7.配置靜態文件服務
location ^~ /news_file { alias /data/attachment/DB40_file/news_file/; expires 30d; #設置瀏覽器過期時間 #目錄或者文件不存在 if (!-e $request_filename){ return 401; } #proxy_store on; #開啟緩存機制 #proxy_store_access user:rw group:rw all:rw; #緩存讀寫規則 #proxy_temp_path b; #存放靜態文件的緩存目錄 #include proxy.conf; #外聯proxy理的詳細配置如proxy_set_header, client_max_body_size .... }
8.配置訪問的黑白名單
# 屏蔽單個ip訪問 deny IP; # 允許單個ip訪問 allow IP; # 屏蔽所有ip訪問 deny all; # 允許所有ip訪問 allow all; #屏蔽整個段即從123.0.0.1到123.255.255.254訪問的命令 deny 123.0.0.0/8 #屏蔽IP段即從123.45.0.1到123.45.255.254訪問的命令 deny 124.45.0.0/16 #屏蔽IP段即從123.45.6.1到123.45.6.254訪問的命令 deny 123.45.6.0/24
一個實例:
server { listen 8804; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; allow 121.15.210.97; --允許單個IP訪問 allow 172.18.5.0/24; --允許172.18.5.0 - 172.18.5.254 IP段訪問 deny all; --默認禁止所有IP訪問 location / { root html; index index.html index.htm; }