Difference between pages "CPU FLAGS" and "Package:Tengine"

(Difference between pages)
(CPU_FLAGS_X86)
 
m (add passenger garbage)
 
Line 1: Line 1:
This page lists processor instruction sets that can be enabled on Funtoo Linux systems using the {{c|CPU_FLAGS_*}} variables.
+
{{Ebuild
 +
|Summary=Robust, small and high performance http and reverse proxy server
 +
|CatPkg=www-servers/tengine
 +
|Maintainer=
 +
|Homepage=http://tengine.taobao.org
 +
}}
 +
Tengine is an {{package|www-servers/nginx}} fork.  It supports DSO module loading, meaning it can have external modules without the need to compile them in.
  
==CPU_FLAGS_X86 ==
+
===Installation===
 +
==== Shared & Static Modules ====
 +
If you happen to want all modules installed dynamically, you, still, need to install some static modules. Make sure to add this to your {{c|/etc/portage/make.conf}} file:
  
{{TableStart}}
+
{{file|name=/etc/portage/make.conf|desc=Tengine all-modules build|body=
<tr><th>Flag</th><th>Introduced</th><th>By</th><th>Part of</th><th>Adopted in</th><th>Name</th><th>Links</th></tr>
+
...
<tr><td>{{c|mmx}}</td><td>1997 (Pentium MMX)</td><td>Intel</td><td></td><td></td><td>MMX</td><td>See [[Wikipedia:MMX (instruction set)]] </td></tr>
+
TENGINE_SHARED_MODULES_HTTP="access addition autoindex browser charset_filter empty_gif fastcgi flv footer_filter geoip image_filter limit_conn limit_req lua map memcached mp4 random_index referer reqstat rewrite scgi secure_link slice split_clients sub sysguard tfs trim_filter upstream_ip_hash upstream_least_conn upstream_session_sticky user_agent userid_filter uwsgi xslt"
<tr><td>{{c|3dnow}}</td><td>1998 (AMD K6-2)</td><td>AMD</td><td></td><td></td><td>3DNow!</td><td>See [[Wikipedia:3DNow!]] </td></tr>
+
TENGINE_STATIC_MODULES_HTTP="concat dav degradation geo gunzip gzip gzip_static perl proxy realip spdy ssi ssl stub_status upstream-rbtree upstream_check upstream_consistent_hash upstream_keepalive"
<tr><td>{{c|mmxext}}</td><td>1999</td><td>AMD</td><td>{{c|sse}}</td><td>Intel Pentium III (as part of SSE)</td><td>AMD MMX Extensions</td><td>See [[Wikipedia:Extended MMX]]</td></tr>
+
...
<tr><td>{{c|3dnowext}}</td><td>1999 (AMD Athlon)</td><td>AMD</td><td></td><td></td><td>3DNow! Extensions</td><td>See [[Wikipedia:3DNow!#3DNow extensions]] </td></tr>
+
}}
<tr><td>{{c|sse}}</td><td>1999 (Pentium III)</td><td>AMD</td><td></td><td>Athlon XP</td><td>Streaming SIMD Extensions (SSE)</td><td>See [[Wikipedia:Streaming SIMD Extensions]]</td></tr>
+
 
<tr><td>{{c|sse2}}</td><td>2001 (Pentium 4)</td><td>Intel</td><td></td><td>AMD Athlon 64/Opteron</td><td>Streaming SIMD Extensions 2 (SSE2)</td><td>See [[Wikipedia:SSE2]]</td></tr>
+
==== External Modules ====
<tr><td>{{c|sse3}}</td><td>2004 (Pentium 4 Prescott)</td><td>Intel</td><td></td><td>AMD Athlon 64 (some steppings)</td><td>Streaming SIMD Extensions 3 (SSE3/PNI)</td><td>See [[Wikipedia:SSE3]]</td></tr>
+
If you want to run passenger:
<tr><td>{{c|ssse3}}</td><td>2006 (Core 2 Woodcrest)</td><td>Intel</td><td></td><td>AMD Bobcat/Bulldozer</td><td>Supplemental Streaming SIMD Extensions 3 (SSSE3)</td><td>See [[Wikipedia:SSSE3]]</td></tr>
+
{{file|name=/etc/portage/make.conf|desc=build the passenger module|body=
<tr><td>{{c|sse4_1}}</td><td>2007 (Core Penryn)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Supplemental Streaming SIMD Extensions 4.1</td><td>See [[Wikipedia:SSSE4#SSE4.1]]</td></tr>
+
TENGINE_EXTERNAL_MODULES_HTTP="passenger"
<tr><td>{{c|sse4a}}</td><td>late 2007 (Barcelona/Phenom)</td><td>AMD</td><td></td><td>N/A</td><td>Supplemental Streaming SIMD Extensions 4a</td><td>See [[Wikipedia:SSSE4#SSE4a]]</td></tr>
+
}}
<tr><td>{{c|sse4_2}}</td><td>late 2008 (Nehalem/Core i7)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Supplemental Streaming SIMD Extensions 4.2</td><td>See [[Wikipedia:SSSE4#SSE4.2]]</td></tr>
+
 
<tr><td>{{c|popcnt}}</td><td>2007</td><td>AMD</td><td></td><td>Intel Nehalem</td><td>POPCNT</td><td>See [[Wikipedia:SSE4#POPCNT_and_LZCNT]]</td></tr>
+
Then, just:  
<tr><td>{{c|lzcnt}}</td><td>2007</td><td>AMD</td><td></td><td>Intel Haswell</td><td>LZCNT</td><td>See [[Wikipedia:SSE4#POPCNT_and_LZCNT]]</td></tr>
+
{{console|body=###i## emerge tengine}}
<tr><td>{{c|xop}}</td><td>2011 (Bulldozer)</td><td>AMD</td><td></td><td></td><td>XOP Instruction set</td><td>See [[Wikipedia:XOP instruction set]]</td></tr>
+
 
<tr><td>{{c|avx}}</td><td>2011 (Sandy Bridge)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Advanced Vector Extensions</td><td>See [[Wikipedia:Advanced Vector Extensions]]</td></tr>
+
===Configuration===
<tr><td>{{c|fma4}}</td><td>2011 (Bulldozer)</td><td>AMD</td><td></td><td>N/A</td><td>FMA3</td><td>See [[Wikipedia:FMA instruction set]]</td></tr>
+
Files for configuration are located at {{c|/etc/tengine}}
<tr><td>{{c|fma3}}</td><td>2012 (Piledriver)</td><td>AMD</td><td></td><td>Intel Haswell</td><td>FMA3</td><td>See [[Wikipedia:FMA instruction set]]</td></tr>
+
 
{{TableEnd}}
+
The major differing point in tengine from nginx is that you have to specifically declare which modules are loaded.  Available modules are located at {{c|/var/lib/tengine/modules}}.
 +
 
 +
{{file|name=/etc/tengine/tengine.conf|desc=DSO module statements|body=
 +
...
 +
dso {
 +
load ngx_http_charset_filter_module.so;
 +
load ngx_http_fastcgi_module.so;
 +
load ngx_http_rewrite_module.so;
 +
}
 +
...
 +
}}
 +
 
 +
===Tengine===
 +
{{c|/etc/tengine/tengine.conf}} contains engine specific configurations.
 +
 
 +
===Sites===
 +
{{c|/etc/tengine/sites-available/localhost}} has site specific configurations. Generally localhost is copied to domain.tld file formats in the {{c|/etc/tengine/sites-available/}} directory.
 +
 
 +
===PHP-FPM===
 +
Tengine does not natively support php, so we delegate that responsibility to [[Package:PHP#Fpm | php-fpm]]
 +
 
 +
{{file|name=/etc/tengine/sites-available/localhost|desc=fpm tcp/ip configuration|body=
 +
server {
 +
        ...
 +
index index.php index.cgi index.htm index.html;
 +
location ~ \.php$ {
 +
        fastcgi_pass 127.0.0.1:9000;
 +
include fastcgi.conf;
 +
        }
 +
        ...
 +
}
 +
}}
 +
 
 +
===Usage===
 +
To start the tengine server:
 +
 
 +
{{console|body=###i## rc-update add tengine default
 +
###i## rc}}
 +
 
 +
{{EbuildFooter}}

Revision as of 22:37, March 26, 2015

www-servers/tengine


Source Repository:Funtoo Overlay
Homepage

Summary: Robust, small and high performance http and reverse proxy server


News

Drobbins

Better Experiences: Ego and Vim

Info on Funtoo's new personality tool called 'ego', and user-focused updates to vim's defaults.
27 April 2015 by Drobbins
Drobbins

How We're Keeping You At the Center of the Funtoo Universe

Read about recent developments that keep you, our users, at the forefront of our focus as Funtoo moves forward.
10 April 2015 by Drobbins
Mgorny

New OpenGL management in Funtoo

Funtoo is switching to an improved system for managing multiple OpenGL providers (Mesa/Xorg, AMD and NVIDIA). The update may involve blockers and file collisions.
30 March 2015 by Mgorny
View More News...

Tengine

Tip

This is a wiki page. To edit it, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.

Tengine is an Nginx fork. It supports DSO module loading, meaning it can have external modules without the need to compile them in.

Installation

Shared & Static Modules

If you happen to want all modules installed dynamically, you, still, need to install some static modules. Make sure to add this to your /etc/portage/make.conf file:

/etc/portage/make.conf - Tengine all-modules build
...
TENGINE_SHARED_MODULES_HTTP="access addition autoindex browser charset_filter empty_gif fastcgi flv footer_filter geoip image_filter limit_conn limit_req lua map memcached mp4 random_index referer reqstat rewrite scgi secure_link slice split_clients sub sysguard tfs trim_filter upstream_ip_hash upstream_least_conn upstream_session_sticky user_agent userid_filter uwsgi xslt"
TENGINE_STATIC_MODULES_HTTP="concat dav degradation geo gunzip gzip gzip_static perl proxy realip spdy ssi ssl stub_status upstream-rbtree upstream_check upstream_consistent_hash upstream_keepalive"
...

External Modules

If you want to run passenger:

/etc/portage/make.conf - build the passenger module
TENGINE_EXTERNAL_MODULES_HTTP="passenger"

Then, just:

# emerge tengine


Configuration

Files for configuration are located at /etc/tengine

The major differing point in tengine from nginx is that you have to specifically declare which modules are loaded. Available modules are located at /var/lib/tengine/modules.

/etc/tengine/tengine.conf - DSO module statements
...
dso {
	load ngx_http_charset_filter_module.so;
	load ngx_http_fastcgi_module.so;
	load ngx_http_rewrite_module.so;
}
...

Tengine

/etc/tengine/tengine.conf contains engine specific configurations.

Sites

/etc/tengine/sites-available/localhost has site specific configurations. Generally localhost is copied to domain.tld file formats in the /etc/tengine/sites-available/ directory.

PHP-FPM

Tengine does not natively support php, so we delegate that responsibility to php-fpm

/etc/tengine/sites-available/localhost - fpm tcp/ip configuration
server {
        ...
	index index.php index.cgi index.htm index.html;
	location ~ \.php$ {
	        fastcgi_pass 127.0.0.1:9000;
		include fastcgi.conf;
        }
        ...
}

Usage

To start the tengine server:

# rc-update add tengine default
# rc