2016-12-14 4 views
0

В настоящее время у меня один домен, и вы пытаетесь разместить два пути: domainB.com и domainB.com/blog на моем сервере.Новый Nginx Site-Path не отображается: конфликтующее имя сервера

Im ищет посетить domainB.com/blog и сделать это в blog, но когда я пытаюсь сделать это я получаю ошибку:

2016/12/14 16:33:45 [warn] 1026#0: conflicting server name "domainB.com" on 0.0.0.0:80, ignored 
2016/12/14 16:33:46 [error] 1039#0: *1 open() "/home/www/flask-deploy/blog/404.html" failed (2: No such file or directory), client: 195.154.199.56, server: domainB.com, request: "GET /license.php HTTP/1.0", host: "www.domainB.com" 
2016/12/14 16:34:31 [error] 1039#0: *10 directory index of "/home/www/flask-deploy/blog/" is forbidden, client: xxx.xx.xx.xxx, serve 

ОБНОВЛЕНО - как делает этот вид конфигурации ??

upstream siteb { 
    server http://localhost:8001; 
} 

upstream siteb-blog { 
    server unix:/var/run/php5-fpm.sock; 
} 

server { 
    listen 80; 
    server_name siteb.com; 

    root /home/www/flask-deploy/siteb; 

    location/{ 
     #proxy_pass http://localhost:8001; 
     #proxy_set_header Host $host; 
     #proxy_set_header X-Real-IP $remote_addr; 
     fastcgi_pass siteb; 
    } 

    location /static { 
     alias /home/www/flask-deploy/siteB/static/; 
    } 


    location ~* ^/blog/ { 
    root /home/www/flask-deploy/siteb-blog; 
     try_files $uri $uri/ /blog/index.php?$query_string; 
     location ~ \.php$ { 
      fastcgi_pass siteb-blog; 
      fastcgi_param SCRIPT_FILENAME $request_filename; 
      include fastcgi_params; 
     } 
    } 
} 

Однако, когда я пытаюсь посетить: siteB.com/blog - я получаю 404 error.

Что я здесь делаю неправильно?

Спасибо!

+1

'nginx' не может иметь два' server' блоков с тем же 'server_name' и портом. Подробнее см. [Этот документ] (http://nginx.org/en/docs/http/server_names.html). –

+0

@RichardSmith Как вы решаете? поэтому мне нужно было бы добавить их в одну и ту же конфигурацию и сделать '1'' 'server_name'' domainB.com' и' 2' иметь 'server_name'' domainB.com/blog'? – Jshee

+0

@RichardSmith - просьба дать ответ на пример, пожалуйста. этот документ, который вы предоставили, трудно понять для моей ситуации. – Jshee

ответ

0

Как @RichardSmith сказал, у вас не может быть 2 серверных блока с одним и тем же именем сервера. Будет загружен только первый.

Единственный способ исправить вашу проблему - объединить все в один файл конфигурации и использовать его для своего блога.

У меня это работает так же как это:

upstream siteb { 
    #flask app 
    server 127.0.0.1:8001; 
} 

upstream siteb-blog { 
    #wordpress php 
    server unix:/var/run/php5-fpm.sock; 
} 

server { 
    listen 80; 
    server_name siteb.com; 
    root /home/www/flask-deploy/siteb/; 

    location ~* ^/blog/ { 
     try_files $uri $uri/ /blog/index.php?$query_string; 
     location ~ \.php$ { 
      fastcgi_pass siteb-blog; 
      fastcgi_param SCRIPT_FILENAME $request_filename; 
      include fastcgi_params; 
     } 
    } 

    location/{ 
     try_files @proxy @proxy; 
    } 

    location @proxy { 
     internal; 
     proxy_pass http://siteb; 
     proxy_redirect off; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 

Это пример с 2-х различных движков.

Надеется, что это помогает

+0

Это полезно, хотя немного __confusing__. Для чего используется блок 'location ~ \ .php?'? Приложение 'flask-web' не основано на php. – Jshee

+0

@ Raul- см. Мой обновленный код. Как это выглядит с точки зрения конфигурации? – Jshee

+0

В вашей исходной конфигурации был носок для unix php. Вы не нуждаетесь в этом местоположении php, если ваш материал не является php, конечно, вы можете просто сделать '' location/'' ' – Raul

 Смежные вопросы

  • Нет связанных вопросов^_^