alibaba / tengine

A distribution of Nginx with some advanced features
https://tengine.taobao.org
BSD 2-Clause "Simplified" License
12.84k stars 2.52k forks source link

Provide RPMs #653

Open 1dot75cm opened 9 years ago

1dot75cm commented 9 years ago

Hi, guys:

I am a member of the Fedora community(FZUG, Fedora Zh User Group). I wrote a compatible el5* / el6 / el7 / fc21 / fc22 / fc23 spec file(In line with redhat standard). Currently, it appears to be reliable. I want to be the RPM maintainer for Tengine.

Tengine spec: https://github.com/FZUG/repo/blob/master/rpms/SPECS/tengine/tengine.spec Copr: https://copr.fedoraproject.org/coprs/mosquito/nginx/

PS: I've seen three related rpm of "PR". https://github.com/alibaba/tengine/pull/576 https://github.com/alibaba/tengine/pull/221 https://github.com/alibaba/tengine/pull/137

1dot75cm commented 9 years ago

Now, this SPEC is full support el5 / el6 / el7 / fc21 / fc22 / fc23. In addition, I added the ModSecurity module for Tengine. (el5 - modsec 2.8.0, other - modsec 2.9.0) If you have good idea, please tell me. -> https://github.com/FZUG/repo

https://copr.fedoraproject.org/coprs/mosquito/nginx/build/123470/

dvershinin commented 3 years ago

Tengine is freely available with RPM installation as part of NGINX Extras by GetPageSpeed. Follow the instruction, for CentOS/RHEL 6, 7 or Amazon Linux 2:

sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm yum-utils
sudo yum-config-manager --enable getpagespeed-extras-tengine
sudo yum -y install tengine

Or, for CentOS/RHEL 8:

sudo dnf -y install https://extras.getpagespeed.com/release-latest.rpm dnf-plugins-core
sudo dnf config-manager --enable getpagespeed-extras-tengine
sudo dnf -y install tengine

Compatible with SELinux, and all the service/names are that of nginx, e.g. you start it with systemctl start nginx.

Example of recent build package on CentOS/RHEL 8, nginx -V produces:

Tengine version: Tengine/2.3.3 nginx version: nginx/1.18.0 built by gcc 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC) built with OpenSSL 1.1.1g FIPS 21 Apr 2020 (running with OpenSSL 1.1.1 FIPS 11 Sep 2018) TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-jemalloc --with-resolve-file=/etc/resolv.conf --with-cc-opt='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

jack9603301 commented 3 years ago

那也应该考虑DEB

jack9603301 commented 3 years ago

我觉得没有必要提供centos8的支持了,不过可以考虑提供centos stream的支持,别忘了提供Debian系支持

einar-hjortdal commented 2 years ago

Tengine is freely available with RPM installation as part of NGINX Extras by GetPageSpeed.

from https://nginx-extras.getpagespeed.com/tengine/

Commercial subscription for GetPageSpeed repository is required

Tengine is not freely available.

dvershinin commented 2 years ago

Tengine is not freely available.

@Coachonko Sorry if the wording is confusing, but the whole paragraph there is:

Since Tengine claims 100% compatibility with the stable NGINX branch, you can easily install all the numerous module packages from NGINX Extras to empower your Tengine furthermore, e.g. to add the PageSpeed module. Commercial subscription for GetPageSpeed repository is required:

yum -y install nginx-module-pagespeed

Tengine is freely available. The commercial subscription is only required to install the numerous NGINX plugins for it, like the given example of the PageSpeed module.

einar-hjortdal commented 2 years ago

@Coachonko Sorry if the wording is confusing, but the whole paragraph there is:

There definitely is a full stop before that statement, it should be corrected.

Regardless, the .spec is not public and there is no public .src.rpm. That is fishy and not to be trusted

dvershinin commented 2 years ago

@Coachonko the wording has been corrected.

Thank you for your input.

einar-hjortdal commented 2 years ago

Even though I do not trust @dvershinin binaries because he does not publish the RPMset (spec and patches) [meaning there is no way to check what changes may have been made to the source code] I have tried to follow his suggestion and do the following procedure

Or, for CentOS/RHEL 8:

sudo dnf -y install https://extras.getpagespeed.com/release-latest.rpm
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --enable getpagespeed-extras-tengine
sudo dnf -y install tengine

The result is this

$ sudo dnf install tengine
Last metadata expiration check: 0:02:10 ago on Fri 15 Apr 2022 09:56:28 PM CEST.
=======================================================================
Some packages in your transaction are brought to you by GetPageSpeed:
 - tengine-1:2.3.3-4.el8.x86_64
To enable package installs, subscribe using the following link:

https://www.getpagespeed.com/repo-subscribe/<server-ip>
=======================================================================

The link leads to a page asking for payment via paypal.

This leads me to believe that the Tengine package is not freely available as he claims.

I therefore renew the request for an RPMset for Tengine:

The Nginx project provides official repositories for RHEL (and RHEL-based linux distributions), Considering that Tengine is an Alibaba product, and Alibaba Cloud Linux is compatible with RHEL, I would like to request an official Tengine RPMset (which includes .spec file and required patches).

With such RPMset it would be easy for people running any RHEL-based distribution (including OpenAnolis, upstream of Alibaba Cloud Linux) to package and install Tengine.

dvershinin commented 2 years ago

@Coachonko thank you, I have corrected a few things, as well as commands to run in the documentation. It should be working fine now without a subscription.

The commands to install are:

sudo dnf -y install https://extras.getpagespeed.com/release-latest.rpm
sudo dnf -y --disablerepo getpagespeed-extras install dnf-plugins-core
sudo dnf config-manager --enable getpagespeed-extras-tengine
sudo dnf -y install engine