博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【编译打包】tengine 1.5.1 SRPM
阅读量:6422 次
发布时间:2019-06-23

本文共 10716 字,大约阅读时间需要 35 分钟。

Tengine 1.5.1是最新稳定版,打包出一个SRPM,分享给大家。

此次打包tengine的特性相对比较完整,主要是包含跟原版nginx区别开来的dso-tool

1、根据CPU数量自动设置进程数和CPU亲缘性

2、大量实用的功能模块(nginx没有,而tengine改进或者新增的模块)

tengine.spec基于nginx.spec,仅供参考,欢迎给出改进意见

#%define nginx_home %{_localstatedir}/cache/nginx%define nginx_user nginx%define nginx_group nginxSummary: tengine is a high performance web serverName: tengineVersion: 1.5.1Release: 1%{?dist}Vendor: taobao inc.URL: http://tengine.taobao.org/Source0: http://tengine.taobao.org/download/%{name}-%{version}.tar.gzSource1: logrotateSource2: nginx.initSource3: nginx.sysconfSource4: nginx.confSource5: nginx.vh.default.confSource6: nginx.vh.example_ssl.confSource7: nginx.suse.initSource8: fastcgi_paramsLicense: 2-clause BSD-like license%if 0%{?suse_version}Group: Productivity/Networking/Web/Servers%elseGroup: System Environment/Daemons%endifBuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-rootBuildRequires: zlib-develBuildRequires: pcre-develBuildRequires: perlBuildRequires: gperftools-devel%if 0%{?suse_version}BuildRequires: libopenssl-develRequires(pre): pwdutils%elseBuildRequires: openssl-develRequires: initscripts >= 8.36Requires(pre): shadow-utilsRequires(post): chkconfig%endifProvides: webserver%descriptiontengine is a fork of nginx, which is an high performance HTTP and reverse proxy server.%package debugSummary: debug version of tengineGroup: System Environment/DaemonsRequires: tengine%description debugnot stripped version of tengine build with the debugging log support%prep%setup -q%build./configure \        --prefix=%{_sysconfdir}/nginx \        --sbin-path=%{_sbindir}/nginx \        --conf-path=%{_sysconfdir}/nginx/nginx.conf \        --error-log-path=%{_localstatedir}/log/nginx/error.log \        --http-log-path=%{_localstatedir}/log/nginx/access.log \        --pid-path=%{_localstatedir}/run/nginx.pid \        --lock-path=%{_localstatedir}/run/nginx.lock \        --dso-path=%{_sysconfdir}/nginx/modules \        --dso-tool-path=%{_sbindir}/dso-tool \        --http-client-body-temp-path=%{_localstatedir}/cache/nginx/client_temp \        --http-proxy-temp-path=%{_localstatedir}/cache/nginx/proxy_temp \        --http-fastcgi-temp-path=%{_localstatedir}/cache/nginx/fastcgi_temp \        --http-uwsgi-temp-path=%{_localstatedir}/cache/nginx/uwsgi_temp \        --http-scgi-temp-path=%{_localstatedir}/cache/nginx/scgi_temp \        --user=%{nginx_user} \        --group=%{nginx_group} \        --with-http_ssl_module \        --with-http_realip_module \        --with-http_gzip_static_module \        --with-http_stub_status_module \        --with-file-aio \        --with-http_concat_module \        --with-http_upstream_check_module \        --with-google_perftools_module \        --with-debug \        --with-cc-opt="%{optflags} $(pcre-config --cflags)" \        $*make %{?_smp_mflags}%{__mv} %{_builddir}/%{name}-%{version}/objs/nginx \        %{_builddir}/%{name}-%{version}/objs/nginx.debug./configure \        --prefix=%{_sysconfdir}/nginx \        --sbin-path=%{_sbindir}/nginx \        --conf-path=%{_sysconfdir}/nginx/nginx.conf \        --error-log-path=%{_localstatedir}/log/nginx/error.log \        --http-log-path=%{_localstatedir}/log/nginx/access.log \        --pid-path=%{_localstatedir}/run/nginx.pid \        --lock-path=%{_localstatedir}/run/nginx.lock \    --dso-path=%{_sysconfdir}/nginx/modules \    --dso-tool-path=%{_sbindir}/dso-tool \        --http-client-body-temp-path=%{_localstatedir}/cache/nginx/client_temp \        --http-proxy-temp-path=%{_localstatedir}/cache/nginx/proxy_temp \        --http-fastcgi-temp-path=%{_localstatedir}/cache/nginx/fastcgi_temp \        --http-uwsgi-temp-path=%{_localstatedir}/cache/nginx/uwsgi_temp \        --http-scgi-temp-path=%{_localstatedir}/cache/nginx/scgi_temp \        --user=%{nginx_user} \        --group=%{nginx_group} \        --with-http_ssl_module \        --with-http_realip_module \        --with-http_gzip_static_module \        --with-http_stub_status_module \        --with-file-aio \    --with-http_concat_module \    --with-http_upstream_check_module \    --with-google_perftools_module \        --with-cc-opt="%{optflags} $(pcre-config --cflags)" \        $*make %{?_smp_mflags}%install%{__rm} -rf $RPM_BUILD_ROOT%{__make} DESTDIR=$RPM_BUILD_ROOT install%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/nginx%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/html $RPM_BUILD_ROOT%{_datadir}/nginx/%{__rm} -f $RPM_BUILD_ROOT%{_sysconfdir}/nginx/*.default%{__rm} -f $RPM_BUILD_ROOT%{_sysconfdir}/nginx/fastcgi.conf%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/log/nginx%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/run/nginx%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/cache/nginx%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/nginx/modules%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/nginx.conf%{__install} -m 644 -p %{SOURCE4} \   $RPM_BUILD_ROOT%{_sysconfdir}/nginx/nginx.conf%{__install} -m 644 -p %{SOURCE5} \   $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d/default.conf%{__install} -m 644 -p %{SOURCE6} \   $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d/example_ssl.conf%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig%{__install} -m 644 -p %{SOURCE3} \   $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/nginx%{__install} -m 644 -p %{SOURCE8} \   $RPM_BUILD_ROOT%{_sysconfdir}/nginx/fastcgi_params# install SYSV init stuff%{__mkdir} -p $RPM_BUILD_ROOT%{_initrddir}%if 0%{?suse_version}%{__install} -m755 %{SOURCE7} \   $RPM_BUILD_ROOT%{_initrddir}/nginx%else%{__install} -m755 %{SOURCE2} \   $RPM_BUILD_ROOT%{_initrddir}/nginx%endif# install log rotation stuff%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d%{__install} -m 644 -p %{SOURCE1} \   $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/nginx%{__install} -m644 %{_builddir}/%{name}-%{version}/objs/nginx.debug \   $RPM_BUILD_ROOT%{_sbindir}/nginx.debug%clean%{__rm} -rf $RPM_BUILD_ROOT%files%defattr(-,root,root)%{_sbindir}/nginx%{_sbindir}/dso-tool%dir %{_sysconfdir}/nginx%dir %{_sysconfdir}/nginx/conf.d%dir %{_sysconfdir}/nginx/modules%config(noreplace) %{_sysconfdir}/nginx/nginx.conf%config(noreplace) %{_sysconfdir}/nginx/conf.d/default.conf%config(noreplace) %{_sysconfdir}/nginx/conf.d/example_ssl.conf%config(noreplace) %{_sysconfdir}/nginx/mime.types%config(noreplace) %{_sysconfdir}/nginx/fastcgi_params%config(noreplace) %{_sysconfdir}/nginx/scgi_params%config(noreplace) %{_sysconfdir}/nginx/uwsgi_params%config(noreplace) %{_sysconfdir}/nginx/koi-utf%config(noreplace) %{_sysconfdir}/nginx/koi-win%config(noreplace) %{_sysconfdir}/nginx/win-utf%config(noreplace) %{_sysconfdir}/nginx/browsers%config(noreplace) %{_sysconfdir}/nginx/module_stubs%config(noreplace) %{_sysconfdir}/logrotate.d/nginx%config(noreplace) %{_sysconfdir}/sysconfig/nginx%{_initrddir}/nginx%dir %{_datadir}/nginx%dir %{_datadir}/nginx/html%{_datadir}/nginx/html/*%attr(0755,root,root) %dir %{_localstatedir}/cache/nginx%attr(0755,root,root) %dir %{_localstatedir}/log/nginx%files debug%attr(0755,root,root) %{_sbindir}/nginx.debug%pre# Add the "nginx" usergetent group %{nginx_group} >/dev/null || groupadd -r %{nginx_group}getent passwd %{nginx_user} >/dev/null || \    useradd -r -g %{nginx_group} -s /sbin/nologin \    -d %{nginx_home} -c "nginx user"  %{nginx_user}exit 0%post# Register the nginx serviceif [ $1 -eq 1 ]; then    /sbin/chkconfig --add nginx    # print site info    cat <
/dev/null 2>&1 /sbin/chkconfig --del nginxfi%postunif [ $1 -ge 1 ]; then /sbin/service nginx upgrade &>/dev/null || :fi%changelog* Sat Sep 14 2013 Purple Grape
- update to 1.5.1* Wed Apr 29 2013 Purple Grape
- 3 modules added: http_concat_module http_upstream_check_module google_perftools_module- 1.3.0

跟上次一样,安装需要 gperftools-libs

tengine 有个命令跟apache相似,列出已安装的模块,nginx -m输出如下

# nginx -mTengine version: Tengine/1.5.1 (nginx/1.2.9)loaded modules:    ngx_core_module (static)    ngx_errlog_module (static)    ngx_conf_module (static)    ngx_dso_module (static)    ngx_syslog_module (static)    ngx_events_module (static)    ngx_event_core_module (static)    ngx_epoll_module (static)    ngx_procs_module (static)    ngx_proc_core_module (static)    ngx_openssl_module (static)    ngx_regex_module (static)    ngx_http_module (static)    ngx_http_core_module (static)    ngx_http_log_module (static)    ngx_http_upstream_module (static)    ngx_http_static_module (static)    ngx_http_gzip_static_module (static)    ngx_http_autoindex_module (static)    ngx_http_index_module (static)    ngx_http_concat_module (static)    ngx_http_auth_basic_module (static)    ngx_http_access_module (static)    ngx_http_limit_conn_module (static)    ngx_http_limit_req_module (static)    ngx_http_realip_module (static)    ngx_http_geo_module (static)    ngx_http_map_module (static)    ngx_http_split_clients_module (static)    ngx_http_referer_module (static)    ngx_http_rewrite_module (static)    ngx_http_ssl_module (static)    ngx_http_proxy_module (static)    ngx_http_fastcgi_module (static)    ngx_http_uwsgi_module (static)    ngx_http_scgi_module (static)    ngx_http_memcached_module (static)    ngx_http_empty_gif_module (static)    ngx_http_browser_module (static)    ngx_http_user_agent_module (static)    ngx_http_upstream_ip_hash_module (static)    ngx_http_upstream_consistent_hash_module (static)    ngx_http_upstream_check_module (static)    ngx_http_upstream_least_conn_module (static)    ngx_http_upstream_keepalive_module (static)    ngx_http_stub_status_module (static)    ngx_http_write_filter_module (static)    ngx_http_header_filter_module (static)    ngx_http_chunked_filter_module (static)    ngx_http_range_header_filter_module (static)    ngx_http_gzip_filter_module (static)    ngx_http_postpone_filter_module (static)    ngx_http_ssi_filter_module (static)    ngx_http_charset_filter_module (static)    ngx_http_userid_filter_module (static)    ngx_http_footer_filter_module (static)    ngx_http_trim_filter_module (static)    ngx_http_headers_filter_module (static)    ngx_http_upstream_session_sticky_module (static)    ngx_http_copy_filter_module (static)    ngx_http_range_body_filter_module (static)    ngx_http_not_modified_filter_module (static)    ngx_google_perftools_module (static)

配置文件略有修改,仅供参考,

模块目前全部静态编译,因为有dso-tool,可动态载入新编译的模块,也可根据需要修改SRPM或二次打包。

附件源名称为tengine-1.5.1-1.el6.src.rpm,上传时直接添加了zip后缀,下载后请改回原来的名字。

( follow the link of " tengine-1.5.1-1.el6.src.rpm",you may get a zip file,

just like "1330104_1379093530.zip",

please directly rename it to “tengine-1.5.1-1.el6.src.rpm”

it's not really a zip file but due to the naming limitation of the blog system )

本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1296930,如需转载请自行联系原作者
你可能感兴趣的文章
Java NIO之拥抱Path和Files
查看>>
微信原图泄露的只能是 Exif ,你的隐私不在这!!!
查看>>
微信小程序教学第三章(含视频):小程序中级实战教程:列表篇-页面逻辑处理...
查看>>
页面间通信与数据共享解决方案简析
查看>>
Swift 中 Substrings 与 String
查看>>
作为一个开源软件的作者是一种什么样的感受?
查看>>
移动端适配知识你到底知多少
查看>>
TiDB 在 G7 的实践和未来
查看>>
重新认识javascript对象(三)——原型及原型链
查看>>
小学生学“数学”
查看>>
FastDFS蛋疼的集群和负载均衡(十七)之解决LVS+Keepalived遇到的问题
查看>>
深入剖析Redis系列(二) - Redis哨兵模式与高可用集群
查看>>
Android 用于校验集合参数的小封装
查看>>
iOS混合开发库(GICXMLLayout)七、JavaScript篇
查看>>
instrument 调试 无法指出问题代码 解决
查看>>
理解缓存
查看>>
BAT 经典算法笔试题 —— 磁盘多路归并排序
查看>>
Nginx限制带宽
查看>>
All Web Application Attack Techniques
查看>>
归档日志ORA-19809: 超出了恢复文件数的限制
查看>>