2016-12-14 5 views
0

私は現在、1つのドメインを持ち、2つのパスをホストしようとしています。domainB.comdomainB.com/blogです。新しいNginxサイトパスが表示されません:競合するサーバー名

イムdomainB.com/blogを訪問し、blogにこれを作るために探しているが、私はこれを行うにしようとすると、私はエラーを取得:

UPDATED
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_name'とportを持つ2つの 'server'ブロックを持つことができません。詳細については、[このドキュメント](http://nginx.org/en/docs/http/server_names.html)を参照してください。 –

+0

@リチャードスミスどのように解決しますか?だから、私は同じ設定でそれらを追加する必要があります '' 'server_name'' 'domainB.com'と' 2'は 'server_name'' domainB.com/blog'を持っていますか? – Jshee

+0

@リチャードスミス - 例を挙げて答えを提供してください。あなたが提供したこの文書は私の状況のた​​めに理解するのが難しいです。 – Jshee

答えて

0

@RichardSmithと同様に、同じserver_nameを持つ2つのサーバーブロックを持つことはできません。最初のものだけが読み込まれます。

問題を解決する唯一の方法は、1つの設定ファイルにすべてをマージしてブログの場所を使用することです。

私はこの本のように働いてい:

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? 'ブロックは何のために使われますか?私の 'フラスコ - ウェブ'アプリケーションは、PHPベースではありません。 – Jshee

+0

@ Raul-私の更新されたコードをご覧ください。設定の観点からはどのように見えますか? – Jshee

+0

元の設定には、UNIXのPHPソケットが入っていました。あなたはあなたのものがもちろんPHPでない場合は、そのPHPの場所は必要ありません、あなたはちょうど '' '場所/' ''を行うことができます – Raul

関連する問題