Conflicting server name - i don't understand
Igor Sysoev
is at rambler-co.ru
Wed Sep 2 08:36:38 MSD 2009
On Tue, Sep 01, 2009 at 05:51:19PM -0400, ktm wrote:
> This is my vhost file.Basically for every vhost i just copy this and change domain name. What i'm missing here, why if i add the second vhost it gives me that error ?
>
>
>
> server {
> listen 80;
> server_name www.xxx.com;
>
> #redirect www to non-www
> rewrite ^/(.*) http://xxx.com/$1 permanent;
>
>
> }
>
>
> server {
> listen 80;
> server_name xxx.com;
> access_log /home/xxx/log/access.log;
> error_log /home/xxx/log/error.log;
>
>
>
> location / {
> root /home/xxx/public_html/;
> index index.php index.html;
> expires 30d;
>
> #stop image and files hotlinking
> location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|jpeg|css)$ {
> valid_referers none blocked xxx.com www.xxx.com *.google.com *.yahoo.com;
> if ($invalid_referer) {
> return 444;
> }
> }
>
> #joomla sef url's
> if (!-e $request_filename) {
> rewrite ^(.*)$ /index.php?q=$1 last;
> break;
> }
> }
>
> if ( $args ~ "mosConfig_{1,21}(=|\%3d)" ) {
> set $args "";
> rewrite ^.*$ http://$host/index.php last;
> return 403;
> }
>
> if ( $args ~ "base64_encode.*\(.*\)" ) {
> set $args "";
> rewrite ^.*$ http://$host/index.php last;
> return 403;
> }
>
> if ( $args ~ "(\<|%3C).*script.*(\>|%3E)" ) {
> set $args "";
> rewrite ^.*$ http://$host/index.php last;
> return 403;
> }
>
> if ( $args ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})" ) {
> set $args "";
> rewrite ^.*$ http://$host/index.php last;
> return 403;
> }
>
> if ( $args ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})" ) {
> set $args "";
> rewrite ^.*$ http://$host/index.php last;
> return 403;
> }
>
>
> # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
> location ~ \.php$
> {
> fastcgi_pass 127.0.0.1:9000;
> fastcgi_index index.php;
> include /usr/local/nginx/conf/fastcgi_params;
> fastcgi_param SCRIPT_FILENAME /home/xxx/public_html/$fastcgi_script_name;
> }
> }
>
>
> server {
This server has no server_name, it will be "hostname" byt default.
> ## Only allow GET and HEAD request methods
> if ($request_method !~ ^(GET|HEAD)$ ) {
> return 444;
> }
> ## Deny illegal Host headers
> if ($host !~* ^(xxx.com|www.xxx.com)$ ) {
> return 444;
> }
Instead of "if ($host !~* ^(xxx.com|www.xxx.com)$ )" you should set all
server's {} with server_names and add yet another default one:
server {
server_name _; return 444;
}
> ## Deny certain User-Agents (case insensitive)
> ## The ~* makes it case insensitive as opposed to just a ~
> if ($http_user_agent ~* (Baiduspider) ) {
> return 444;
> }
>
> ## Deny certain Referers (case insensitive)
> ## The ~* makes it case insensitive as opposed to just a ~
> if ($http_referer ~* (babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|video|webcam|zippo) ) {
> return 444;
> }
>
> ## Serve an empty 1x1 gif _OR_ an error 204 for favicon.ico
> location = /favicon.ico {
> #empty_gif;
> return 204;
> }
>
>
> ## All other errors get the generic error page
> error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
> 500 501 502 503 504 505 /error_page.html;
> location /error_page.html {
> internal;
>
> }
>
> }
>
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?2,5464,5465#msg-5465
>
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list