• nginx.spec


    %define nginx_user 		admin
    %define nginx_group 		%{nginx_user}
    %define nginx_home 		/export/servers/nginx
    %define nginx_temp_path 	/dev/shm/nginx_temp
    %define nginx_sbin_path         %{nginx_home}/sbin
    %define nginx_sbin_file_path 	%{nginx_sbin_path}/nginx
    %define nginx_conf_path 	%{nginx_home}/conf
    %define nginx_log_path 		%{nginx_home}/logs
    %define nginx_var_path 		%{nginx_home}/var
    %define nginx_run_path 		%{nginx_home}/run
    %define nginx_temp_proxy_path 	%{nginx_temp_path}/proxy
    %define nginx_temp_client_path 	%{nginx_temp_path}/client_body
    %define nginx_temp_fastcgi_path %{nginx_temp_path}/fastcgi
    %define nginx_temp_uwsgi_path 	%{nginx_temp_path}/uwsgi
    %define nginx_temp_scgi_path 	%{nginx_temp_path}/scgi
    Name:		nginx
    Version:	1.7.2.1
    Release:	1%{?dist}
    Summary:	nginx, small and high performance http and reverse proxy server
    
    Group:		System Environment/Daemons
    License:	GPL
    URL:		http://nginx.org
    Source0:	nginx-1.7.2.tar.gz
    Source1:	nginx
    Source2:	logrotate.sh
    Source3:	nginx.conf
    Source4:	pickingplan_taskassign.location.conf
    Source5:	lua.tar.gz
    Source6:	pcre-8.31.zip
    BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
    
    BuildRequires:	gcc,openssl-devel,pcre-devel,zlib-devel,libtool,gcc-c++
    Requires:	pcre,zlib,openssl
    Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
    
    %description
    Nginx [engine x] is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3
    proxy server written by Igor Sysoev.
    
    %prep
    %setup -q
    
    %build
    cd %{_builddir}/%{name}-%{version}/bundle/LuaJIT-2.1-20140707
    make clean
    make -j32
    make install
    ln -sf luajit-2.1.0-alpha /usr/local/bin/luajit
    
    export DESTDIR=%{buildroot}
    cd %{_builddir}/%{name}-%{version}
    mkdir -p %{buildroot}%{nginx_conf_path}
    ./configure --prefix=%{nginx_home} 
                --sbin-path=%{nginx_sbin_file_path} 
    	    --conf-path=%{nginx_conf_path}/nginx.conf 
    	    --error-log-path=%{nginx_log_path}/error.log 
    	    --http-log-path=%{nginx_log_path}/access.log 
    	    --pid-path=%{nginx_run_path}/nginx.pid 
    	    --lock-path=%{nginx_var_path}/nginx.lock 
    	    --http-client-body-temp-path=%{nginx_temp_client_path} 
    	    --http-proxy-temp-path=%{nginx_temp_proxy_path} 
    	    --http-fastcgi-temp-path=%{nginx_temp_fastcgi_path} 
    	    --http-uwsgi-temp-path=%{nginx_temp_uwsgi_path} 
    	    --http-scgi-temp-path=%{nginx_temp_scgi_path} 
    	    --user=%{nginx_user} 
    	    --group=%{nginx_group} 
    	    --with-cpu-opt=pentium4F 
    	    --without-select_module 
    	    --without-poll_module 
    	    --with-http_realip_module 
    	    --with-http_sub_module 
    	    --with-http_gzip_static_module 
    	    --without-http_ssi_module 
    	    --without-http_userid_module 
    	    --without-http_geo_module 
    	    --without-http_map_module 
    	    --without-mail_pop3_module 
    	    --without-mail_imap_module 
    	    --without-mail_smtp_module 
    	    --with-http_stub_status_module 
    	    --with-luajit 
    	    --with-http_spdy_module 
    	    --with-pcre=/usr/local/src/pcre-8.31
    make %{?_smp_mflags}
    
    
    %install
    rm -rf %{buildroot}
    make install DESTDIR=%{buildroot}
    mkdir -p %{buildroot}/dev/shm/nginx_temp
    mkdir -p %{buildroot}%{nginx_conf_path}/domains
    mkdir -p %{buildroot}%{nginx_run_path}
    mkdir -p %{buildroot}%{nginx_var_path}
    mkdir -p %{buildroot}%{nginx_var_path}/lua
    
    %{__install} -p -D -m 0755 $RPM_SOURCE_DIR/logrotate.sh %{buildroot}%{nginx_sbin_path}
    %{__install} -p -D -m 0644 $RPM_SOURCE_DIR/nginx.conf %{buildroot}%{nginx_conf_path}
    %{__install} -p -D -m 0644 $RPM_SOURCE_DIR/pickingplan_taskassign.location.conf %{buildroot}%{nginx_conf_path}/domains
    %{__install} -p -D -m 0755 $RPM_SOURCE_DIR/nginx %{buildroot}/etc/rc.d/init.d/nginx
    %{__tar} zxvf $RPM_SOURCE_DIR/lua.tar.gz -C %{buildroot}%{nginx_var_path}/lua
    
    %clean
    rm -rf %{buildroot}
    
    %pre
    if [ $1 == 1 ];then
        egrep "^admin" /etc/group >& /dev/null
        if [ $? -ne 0 ];then
            groupadd -g 600 admin
        fi
        egrep "^admin" /etc/passwd >& /dev/null  
        if [ $? -ne 0 ];then
            useradd -u 600 -g 600 admin
        fi
    fi
    
    %post
    if [ $1 == 1 ];then
        /sbin/chkconfig --add %{name}
        /sbin/chkconfig %{name} on
    echo '# Add  #下面主要是内核参数的优化,包括tcp的快速释放和重利用等。   
    net.core.somaxconn = 32768
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_timestamps = 1
    net.ipv4.tcp_synack_retries = 1
    net.ipv4.tcp_syn_retries = 0
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.ip_local_port_range = 1024  65535
    net.ipv4.tcp_fin_timeout = 10
    net.ipv4.tcp_keepalive_time = 100
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_max_syn_backlog = 8192
    net.ipv4.tcp_max_tw_buckets = 20000' >> /etc/sysctl.conf
        sysctl -p > /dev/null 2>&1
    fi
    
    if [ $1 == 1 ];then
        /sbin/service %{name} restart > /dev/null 2>&1
    fi
    
    %preun
    if [ $1 == 0 ];then
        /sbin/service %{name} stop > /dev/null 2>&1
        /sbin/chkconfig --del %{name}
    fi
    
    %postun
    if [ $1 == 0 ];then
        rm -rf %{nginx_home}
        sed -i '/# Add  #下面主要是内核参数的优化/,$d' /etc/sysctl.conf
    fi
    
    %files
    %defattr(-,root,root,-)
    %doc
    /export
    /dev
    /etc
    /usr/local
    
    
    %changelog
    * Wed Feb 3 2016 Created by lihui
    -RPMBUILD OpenResty
    
  • 相关阅读:
    Nginx 变量漫谈
    nginx 常见参数以及重定向参数配置
    Nginx proxy_pass配置
    [效果不错] nginx 高并发参数配置及linux内核参数优化,完整的内核优化设置。PHP-FPM高负载解决办法。
    网页 大文件上传解决方案(500M以上)
    VUE 大文件上传解决方案(500M以上)
    JavaScript 大文件上传解决方案(500M以上)
    JS 大文件上传解决方案(500M以上)
    C#.NET 大文件上传解决方案(500M以上)
    ASP.NET 大文件上传解决方案(500M以上)
  • 原文地址:https://www.cnblogs.com/lihuiyw/p/5181708.html
Copyright © 2020-2023  润新知