# Rewrite Performance Question

**URL:** <https://www.ruby-forum.com/t/rewrite-performance-question/191822>\
**Category:** NGINX\
**Created:** [July 19, 2010, 11:59am UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822 "2010-07-19T11:59:17Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 19, 2010, 11:59am UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/1 "2010-07-19T11:59:17Z")

</div>

Hi,

come some take a look at these rewrite rules if they are ok regarding  
performance?

```
    if ($host = 'forum.de' ) {
        rewrite ^/(.*)$ http://www.forum.de:81/$1 permanent;
    }

    if ($host ~* ^(www\.)??forum\.(at|ch|com|eu|info|net|org)) {
        rewrite ^(.*)$ http://www.forum.de:81 last;
    break;
    }

```

}

Thanks 🙂

Juergen

---

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 19, 2010, 12:22pm UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/2 "2010-07-19T12:22:07Z")

</div>

On Mon, Jul 19, 2010 at 1:59 PM, Juergen G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> ```
> if ($host ~* ^(www\.)??forum\.(at|ch|com|eu|info|net|org)) {
> rewrite ^(.*)$ http://www.forum.de:81 last;
> break;
> }
> 
> ```
> 
> }  
> Hi!  
> Never use if ($host …  
> Different servers with different server\_names must be used instead:  
> server  
> {  
> server\_name [forum.de](http://forum.de);  
> location / { rewrite ^ [http://www.forum.de:81/$request\_uri](http://www.forum.de:81/$request_uri)?  
> premanent; }  
> }  
> server  
> {  
> server\_name ~^(www.)??forum.(at|ch|com|eu|info|net|org);  
> location / { rewrite ^ [http://www.forum.de:81/$request\_uri](http://www.forum.de:81/$request_uri)?  
> premanent; }  
> }

–  
Boris D..

---

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 19, 2010, 1:11pm UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/3 "2010-07-19T13:11:18Z")

</div>

On Mon, Jul 19, 2010 at 02:20:49PM +0400, Boris D. wrote:

> > 
> 
> ```
> server_name forum.de;
> location / { rewrite ^ http://www.forum.de:81/$request_uri? premanent; }
> 
> ```
> 
> }  
> server  
> {  
> server\_name ~^(www.)??forum.(at|ch|com|eu|info|net|org);  
> location / { rewrite ^ [http://www.forum.de:81/$request\_uri](http://www.forum.de:81/$request_uri)? premanent; }  
> }

Also, in the second server it’s better to use usual names instead of  
regex:

```
 server_name forum.at www.forum.at
               forum.ch www.forum.ch
               ...
               ;

```

–  
Igor S.

> **[Igor Sysoev](http://sysoev.ru/en/)**

---

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 19, 2010, 3:50pm UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/4 "2010-07-19T15:50:35Z")

</div>

2010/7/19 Igor S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Also, in the second server it’s better to use usual names instead of regex:
> 
> Â Â server\_name Â forum.at www.forum.at  
> Â Â Â Â Â Â Â Â Â forum.ch www.forum.ch  
> Â Â Â Â Â Â Â Â Â …  
> Â Â Â Â Â Â Â Â Â ;

it would be nice if the config supports simple (extended)  
glob(3)-style pattern matching so it would be something like

server\_name {www.,}forum.{at,ch,com,eu,info,net,org};

which should be automatically expanded into

www.forum.at  
www.forum.ch

> **[Inquiry | Grit Brokerage](https://www.gritbrokerage.com/inquiry)**

…

> **[ForumNet: Implementing Internet Communications](http://www.forum.net/)**
>
> Implementing Internet Communications

[forum.org](http://forum.org)

–  
O\< ascii ribbon campaign - stop html mail - [www.asciiribbon.org](http://www.asciiribbon.org)

---

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 20, 2010, 11:40am UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/5 "2010-07-20T11:40:48Z")

</div>

On 19.07.2010 17:49, Edho P Arief wrote:

> …  
> [forum.net](http://forum.net)  
> [forum.org](http://forum.org)

You can use some preprocessor to generate nginx config from template  
(with  
globs, variables and other features missing in nginx config)

–  
Anton Y.

---

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 19, 2010, 1:26pm UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/6 "2010-07-19T13:26:31Z")

</div>

Ok 🙂 thanks to both of you

Juergen

---

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 20, 2010, 12:08pm UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/7 "2010-07-20T12:08:54Z")

</div>

On Tue, Jul 20, 2010 at 4:39 PM, Anton Y. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> You can use some preprocessor to generate nginx config from template (with  
> globs, variables and other features missing in nginx config)

whare can I find this “some preprocessor”?

–  
O\< ascii ribbon campaign - stop html mail - [www.asciiribbon.org](http://www.asciiribbon.org)

---

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 20, 2010, 12:13pm UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/8 "2010-07-20T12:13:35Z")

</div>

> > [www.forum.com](http://www.forum.com)  
> > …  
> > [forum.net](http://forum.net)  
> > [forum.org](http://forum.org)  
> > You can use some preprocessor to generate nginx config from template (with  
> > globs, variables and other features missing in nginx config)

server\_name ~“(www.)?forum.(at|ch|com|eu|info|net|org)”;

or

server\_name ~“(www.|)forum.(at|ch|com|eu|info|net|org)”;

?

–  
br, Denis F. Latypoff.

---

<div class="post-metadata">

**Author:** ![gromminger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a4c791/32.png) [@gromminger](https://www.ruby-forum.com/u/gromminger)\
**Post date:** [July 20, 2010, 12:24pm UTC](https://www.ruby-forum.com/t/rewrite-performance-question/191822/9 "2010-07-20T12:24:43Z")

</div>

> > > [www.forum.com](http://www.forum.com)  
> > > …  
> > > [forum.net](http://forum.net)  
> > > [forum.org](http://forum.org)  
> > > You can use some preprocessor to generate nginx config from template (with  
> > > globs, variables and other features missing in nginx config)

- server\_name ~“(www.)?forum.(at|ch|com|eu|info|net|org)”;

- server\_name ~“(www.)?forum.(at|ch|com|eu|info|net|org)”;

> or

- server\_name ~“(www.|)forum.(at|ch|com|eu|info|net|org)”;

- server\_name ~“(www.|)forum.(at|ch|com|eu|info|net|org)”;

> ## ?
> 
> br, Denis F. Latypoff.
> 
> * * *
> 
> nginx mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [mailman.nginx.org archive](http://nginx.org/mailman/listinfo/nginx)

–  
br, Denis F. Latypoff.
