secendday 发表于 2013-1-12 17:26:06

军哥给看一下吧,301转向的问题

今天打算做个301转向
这个是我做好后的/usr/local/nginx/conf/nginx.conf
userwww www;
worker_processes 1;
error_log/dev/null;
pid      /usr/local/nginx/logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include       mime.types;
default_typeapplication/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush   on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
                fastcgi_intercept_errors on;
gzip on;
gzip_min_length1k;
gzip_buffers   4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zonecrawler$binary_remote_addr10m;
#log format
log_formataccess'$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
server
{
listen       80;
server_name www.xxx.com xxx.com;
index index.html index.htm index.php;
root/home/wwwroot;
location ~ .*\.(php|php5)?$
   {
    fastcgi_passunix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fcgi.conf;
   }
location /p5ma/status {
   stub_status on;
   access_log   off;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
   {
    expires      30d;
   }
location ~ .*\.(js|css)?$
   {
    expires      12h;
   }
}
server {
                listen       80;
                server_name www.xxx.com xxx.com;
                if ($host = 'xxx.com') {
                rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
                }
}
include vhost/*.conf;
}
也就是在最后加上了一段:
server {
                listen       80;
                server_name www.xxx.com xxx.com;
                if ($host = 'xxx.com') {
                rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
                }
}

做好后,测试了一下:
测试nginx.conf正确性:
/usr/local/nginx/sbin/nginx -t
没改前是:
# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
加上后:
# /usr/local/nginx/sbin/nginx -t
nginx: conflicting server name "www.xxx.com" on 0.0.0.0:80, ignored
nginx: conflicting server name "xxx.com" on 0.0.0.0:80, ignored
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
百度了一下,nginx: conflicting server name "www.xxx.com" on 0.0.0.0:80, ignored
没有搞明白,所以不敢往下做了
想问一下军哥,这个正常不?该怎么做?
谢谢了

[ 本帖最后由 secendday 于 2013-1-12 19:32 编辑 ]

licess 发表于 2013-1-12 18:28:27

提示的域名添加了多次

secendday 发表于 2013-1-12 18:43:19

可下面是军哥在论坛里给的
好象也是添加了两次
军哥给的
server {
                listen       80;
                server_name www.gyquan.com;
                index index.html index.htm index.php default.html default.htm default.php;
                root/home/wwwroot/www.gyquan.com;

                include none.conf;
                location ~ .*\.(php|php5)?$
                        {
                              fastcgi_passunix:/tmp/php-cgi.sock;
                              fastcgi_index index.php;
                              include fcgi.conf;
                        }

                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                              expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                              expires      12h;
                        }

                access_log off;
      }

server {
                listen       80;
                server_name www.域名.com 域名.com;
                if ($host != 'www.域名.com' ) {
                rewrite ^/(.*)$ http://bbs.域名.com/$1 permanent;
                }
}

和我这个应该是一样的吧?

secendday 发表于 2013-1-12 18:46:17

我就一个站,应该怎么修改?军哥,谢谢了

secendday 发表于 2013-1-12 18:57:30

改成这样行不行?
server
{
listen       80;
server_name www.xxx.com xxx.com;
index index.html index.htm index.php;
root/home/wwwroot;


            if ($host = 'xxx.com') {
                rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
                }





                error_page 404 /404.html;
location ~ .*\.(php|php5)?$
   {
    try_files $uri =404;
    fastcgi_passunix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fcgi.conf;
   }
location /p5ma/status {
   stub_status on;
   access_log   off;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
   {
    expires      30d;
   }
location ~ .*\.(js|css)?$
   {
    expires      12h;
   }
access_log/home/wwwlogs/access.log access;
}
server {
                listen       80;
                server_name www.xxx.com xxx.com;
}
include vhost/*.conf;
}



也行就是用一个server {
                listen       80;


            if ($host = 'xxx.com') {
                rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
                }
加到
server
{
listen       80;
server_name www.xxx.com xxx.com;
index index.html index.htm index.php;
root/home/wwwroot;
下面?
这个是否可行?谢谢

[ 本帖最后由 secendday 于 2013-1-12 18:59 编辑 ]

secendday 发表于 2013-1-12 19:23:29

上面是方法一

下面是方法二:
server
      {
                listen       80;
                server_name www.zmanhua.com;
                index index.html index.htm index.php default.html default.htm default.php;
                root/home/wwwroot/zmanhua.com;
。。。。。。。
      }

server {
server_name zmanhua.com;
rewrite ^/(.*)$ http://www.zmanhua.com$1 permanent;
}
注意一点:前面的server name只能包含带www的哦,不带www的写下面


方法一 和 方法二 哪个更好一些?谢谢

[ 本帖最后由 secendday 于 2013-1-12 19:45 编辑 ]

licess 发表于 2013-1-12 21:03:36

方法一 和 方法二 一样

secendday 发表于 2013-1-13 05:40:15

谢谢 军哥,使用了方法二
页: [1]
查看完整版本: 军哥给看一下吧,301转向的问题