014 Linux下Nginx图片服务的安装与配置(CentOS 6.5)

1、Nginx 环境准备:
root安装Nginx需要完成以下依赖的安装
1.gcc 安装:yum install gcc-c++
2.PCRE pcre-devel 安装:yum install -y pcre pcre-devel
3.zlib 安装: yum install -y zlib zlib-devel
4.OpenSSL 安装:yum install -y openssl openssl-devel


2、创建nginx用户和组:
# groupadd boco
# useradd boco -d /home/boco -g boco


3、下载Nginx
# wget http://nginx.org/download/nginx-1.14.0.tar.gz
# tar -zvxf nginx-1.14.0.tar.gz
# cd nginx-1.14.0


4、配置编译安装:
configure配置:
# ./configure --user=boco  --group=boco --prefix=/home/boco/nginx --pid-path=/home/boco/nginx/logs/nginx.pid --error-log-path=/home/boco/nginx/logs/error.log --http-log-path=/home/boco/nginx/logs/access.log --with-http_ssl_module
编译安装:
# make 
# make install


5、配置文件:
修改nginx用户和组:
# chown -R boco:boco /home/boco/nginx
验证nginx
# /home/boco/nginx/sbin/nginx -V
配置文件/home/boco/nginx/conf/nginx.conf内容如下:


user  root;
#user  boco;
worker_processes 8;
error_log  /home/boco/nginx/logs/nginx_error.log  crit;
pid        /home/boco/nginx/nginx.pid;
 
#Specifies the value for maximum file descriptors that can be opened by thisprocess.
worker_rlimit_nofile 65535;
 
events
{
  use epoll;
  worker_connections 65535;
}
 
http
{
  include       mime.types;
  default_type  application/octet-stream; 
  charset  utf-8; 
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 300m;
 
  sendfile on;
  tcp_nopush     on;
  keepalive_timeout 60;
  tcp_nodelay on;
  client_body_buffer_size  512k;
  proxy_connect_timeout    5;
  proxy_read_timeout       60;
  proxy_send_timeout       5;
  proxy_buffer_size        16k;
  proxy_buffers            4 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;
 
  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types       text/plainapplication/x-javascript text/css application/xml;
  gzip_vary on;
 
  #注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
  proxy_temp_path   /home/boco/nginx/proxy_temp_dir;
  #设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为5GB。
  proxy_cache_path  /home/boco/nginx/proxy_cache_dir  levels=1:2   keys_zone=cache_one:200m inactive=1d max_size=5g;
   
  server #此处为缓存服务器
  {
    listen       8080;
    server_name  192.168.3.12;
 
    location /
    {
         proxy_cache cache_one;
         #对不同的HTTP状态码设置不同的缓存时间
         proxy_cache_valid  200 304 12h;
         #以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
         proxy_cache_key  $host$uri$is_args$args;
         proxy_set_header Host  $host;
         proxy_set_header X-Forwarded-For  $remote_addr;
         proxy_pass http://192.168.3.12:8000; #此处跳转到真实的图片服务器
 
        #expires      1d;
         expires      -1d;
    }
 
    #用于清除缓存,假设一个URL为http://192.168.3.12/test.txt,通过访问http://192.168.3.12/purge/test.txt就可以清除该URL的缓存。
    location ~ /purge(/.*)
    {
     #设置只允许指定的IP或IP段才可以清除URL缓存。
     allow            127.0.0.1;
     deny            all;
     #proxy_cache_purge   cache_one$host$1$is_args$args;
    }
 
    #扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。
    location ~ .*\.(php|jsp|cgi)?$
    {
         proxy_set_header Host  $host;
         proxy_set_header X-Forwarded-For  $remote_addr;
    }
    access_log  off;
  }
 
#真实的图片服务器
server
{
  listen 8000;
  server_name 192.168.3.12;
  location /
  {
    root /home/boco/files_test/;
  }
access_log /home/boco/nginx/logs/nginx_access.log;
}
}


验证nginx的配置文件是否正确:
# /home/boco/nginx/sbin/nginx -t -c /home/boco/nginx/conf/nginx.conf




6、配置脚本启动:
将启动脚本放入/etc/init.d/ 并给予执行权限
chmod +x /etc/init.d/nginx
vi /etc/init.d/nginx


#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /home/boco/nginx/conf/nginx.conf
# pidfile:     /home/boco/nginx/logs/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="/home/boco/nginx/sbin/nginx"
prog=$(basename $nginx)


NGINX_CONF_FILE="/home/boco/nginx/conf/nginx.conf"


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
}


restart() {
    configtest || return $?
    stop
    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


#至此我们可以使用
service nginx start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest 


开机自启动
chkconfig nginx on
chkconfig --list #查看是否开启

猜你喜欢

转载自blog.csdn.net/guoyanliang1985/article/details/80137232
014