2017-01-25 7 views
0

私は質問にあまりにも多くの情報を追加していますが、私に同行してください。サブドメインのpleskのニス

私たちのサイトは、 - domain1.comはipと言っています。 - 192.168.1.25。さて、IP上で動作する別のサーバに、たとえば平板パネル12.5.30を有する192.168.1.26。我々がすべてをセットアップし、プロダクションとして作業する準備が整うまで、 を非公開にしたいので、ドメインdomain1.comを192.168.1.26に指定していないことに注意してください。 pleskパネルにdomain1.comというドメインを設定し、サブドメインとしてstaging.domain1.comを作成しました。

staging.domain1.comを192.168.1.26に設定するようにローカルマシン上のhostsファイルを変更しました。メインドメインdomain1.comが192.168.1.25以上で稼働している間に新しいサーバーからウェブサイトにアクセスできるようになりました。ドメイン1.comとしてアクセスできます

基本的に192.168.1.26IP以上のステージング環境を設定しています。新しいステージングドメイン上でCentOS 6を実行し、pleskパネルの特定のIP上でWebサイトを実行するようにファイアウォールルールを有効にしました。

新しいサーバにワニスを設定し、インストールします。 staging.domain1 - [。我々はすでにのPleskフォーラムでのワニスの要求のためにupvotedている]のPleskでは、我々は、セットアップ192.168.1.26のようにレコードを

80ポートを介し
> netstat -ntlp | grep -w 80 
tcp  0  0 0.0.0.0:80     0.0.0.0:*     LISTEN  29795/nginx   
tcp  0  0 :::80      :::*      LISTEN  29795/nginx   

> netstat -ntlp | grep -w 7080 
tcp  0  0 0.0.0.0:7080    0.0.0.0:*     LISTEN  10161/httpd 

を実行しているポート7080 & nginxの上のApache実行しています.comをDNSに追加し、ステージングドメインで正しいIPを取得しています。私たちは以下のように/etc/varnish/default.vclファイルを設定します。

backend default { 
    .host = "192.168.1.26"; 
    .port = "80"; 
} 

backend admin { 
    .host = "192.168.1.26"; 
    .port = "80"; 
    .first_byte_timeout = 18000s; 
    .between_bytes_timeout = 18000s; 
} 

sub vcl_recv { 
    if (req.restarts == 0) { 
     if (req.http.x-forwarded-for) { 
      set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + cl$ 
     } else { 
      set req.http.X-Forwarded-For = client.ip; 
     } 
    } 
    if (req.request != "GET" && 
     req.request != "HEAD" && 
     req.request != "PUT" && 
     req.request != "POST" && 
     req.request != "TRACE" && 
     req.request != "OPTIONS" && 
     req.request != "DELETE" && 
     req.request != "PURGE") { 
     /* Non-RFC2616 or CONNECT which is weird. */ 
     return (pipe); 
    } 

    if (req.http.cookie ~ "adminhtml=") { 
     set req.backend = admin; 
    } 
} 

ここでは/ etc /のsysconfig /ニスファイルです:

VARNISH_LISTEN_PORT=6081 
VARNISH_ADMIN_LISTEN_PORT=6082 
VARNISH_VCL_CONF=/etc/varnish/default.vcl 

我々はニスサービス開始 - に/etc/init.dを/ニス開始し、ポート6081をチェックする:

> netstat -ntlp | grep -w 6081 
tcp  0  0 0.0.0.0:6081    0.0.0.0:*     LISTEN  23745/varnishd  
tcp  0  0 :::6081      :::*      LISTEN  23745/varnishd  

しかし、我々はstaging.domain1.com:6081にアクセスすることにより、私たちのサイトをチェックするとき、私たちは応答を得ているが、ブラウザで表示URLがdomain1.comを指しています。ドメイン名staging.domain1.comにデフォルトの&の管理者の.hostを以下のように変更してから、ワニスサービスを再開しましたが、失敗しました。

実際の(サブ)ドメイン名を追加した後に再起動しない理由はありません。別のもの:サイトはポート80、つまりnginxからサービスを提供しています。理想的には、ワニスはポート80を越えて走っていなければなりませんでしたが、何とか失敗しました。私たちは、ポート番号8080でnginxを実行するために、 - https://www.theshell.guru/change-nginx-port-plesk-12-centos-6-6/のガイドラインに従って管理しました。基本的に、私たちはは、/ usr/local/psa/adminに/ confに/テンプレート下のカスタムディレクトリを追加し、8080

  • nginx.php
  • nginxDomainForwarding.php
  • nginxDomainForwardingIpDefaultをあそこに以下のファイルをコピーして、ポートに更新しますnginxWebmail
  • nginxDomainVhostIpDefault.php
  • nginxDomainVhost.php
  • の.php。PHP

はその後、我々はニスは80の代わりに、ポート6081にポートを聞く、変更が、我々はニスを起動したときに、それstraightawayショーは失敗し、私たちのドメイン - staging.domain1.comので、我々はすなわち、上記のように、すべてをバック戻っロードに失敗します

  • ポート6081上のワニス[80におけるVCLバックエンド]
  • アパッチ7080
  • nginxの80

私寿を仮定LDシナリオを以下た:

  • ワニス - ポート80 default.vclファイル8080ポートからコンテンツをgrebべき]
  • nginxの - ポート8080
  • アパッチ - 最初のポート7080.

ワニスが正しく構成されているかどうかを確認することはできません。実際のホスト名の代わりにIPを設定した場合は確認できません。また、2番目のシナリオでは、理想的なはずですがワニスサービスを開始できません。

基本的に、私はここで何が間違っているのかは分かりません。

答えて

0

まず、Pleskまたはコントロールパネルでワニスを使用しないでください。これは良い結果につながることはありません。それはあなたが何が起こっているかについてのより良い洞察を持っているので、裸のLinux Linuxサーバでそれを使用してください。

第2に、あなたはほとんどそこにいました。ワニスVCLのバックエンドIPはIPとして残っていなければなりませんでした。 IPの代わりにドメインを置くことは間違っています。 VarnishはHTTPリクエストからのHostヘッダーを基底のバックエンドサーバーに自動的に変換します。あなたはURL http://staging-domain:6081/でページを開いた場合 だから、その後、何が起こるかは次のとおりです。

  • ホストとHTTPリクエスト:ステージングドメインは、ニス
  • 達する
  • は、ワニスは同じ値でのApache/nginxのに沿って、それを渡します。

最初の問題は、アプリ/ウェブサイトからリダイレクトされた可能性が高いです。

簡単に言えば、http://staging-domain:6081/にアクセスしようとしていて、設定/構成に「ドメイン」がハードコードされているため、あなたのアプリはhttp://domain/にリダイレクトされました。非常に一般的なことが起こる。

だから、解決策はに次のようになります。

  • 変更ワニスは8080
  • すなわち、別のポートに80
  • 変更nginxの/何でも、あなたのバックエンドWebサーバにIPを聞くには、にワニスVCLバックエンドの定義を調整しますWebサーバーのIPとポート、つまり192.168.1。

    port_in_redirect off; 
    

    :26と

  • 8080は

あなたはまた、nginxのに上の実際のポートを変換し、nginxの設定でリダイレクトでポートを無効にする必要があります特定のベースURLには、Webアプリケーションの設定を調整しますすべてが失敗した場合は、専門のインストールサービスを利用してください:)

関連する問題