ホームページ > バックエンド開発 > PHPチュートリアル > 複数のサイトがポート 80 を共有するように nginx が構成されている問題を解決する方法

複数のサイトがポート 80 を共有するように nginx が構成されている問題を解決する方法

不言
リリース: 2023-03-31 14:52:01
オリジナル
7963 人が閲覧しました

この記事では、主に nginx がポート 80 を共有するように複数のサイトを設定するためのソリューションを紹介します。この記事は、それを非常に詳細に紹介しており、必要な友人は参照してください。

ただ。場所を変更して、http モジュールで参照する仮想ホスト構成ファイルのディレクトリを追加します:

例: include /usr/local/nginx/default.d/*.conf;

http {
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
  access_log /var/log/nginx/access.log main;
  sendfile      on;
  tcp_nopush     on;
  tcp_nodelay     on;
  keepalive_timeout  65;
  types_hash_max_size 2048;
  include       /etc/nginx/mime.types;
  default_type    application/octet-stream;
  include /usr/local/nginx/default.d/*.conf; //就这里加一行就可以了
}
ログイン後にコピー

2. 仮想ホスト構成ディレクトリを作成します。

#/usr/local/nginx/default.d フォルダーを作成して、Web サイト構成ファイルを特別に配置します。 。

私の設定を投稿します:

/usr/local/nginx/default.d/mytest.conf

server {
  listen    80 ;  //注意这里,要把默认的那个default_server去掉,因为我们在下面要单独配置域名访问,所以这里不要留default_server,不然会报错。
  server_name mytest.com; //这里写你想设置的域名,可以写多个,与名之间用空格隔开
  root     /mnt/share/mytest.com;  //这里是你虚拟机的根目录,写绝对路径
  # Load configuration files for the default server block.

  location / {
    index index.php index.html index.htm; //这里配置默认访问的页面
  }
  location ~* \.php$ {  //这里配置php解析.php文件

    fastcgi_index  index.php;
    fastcgi_pass  127.0.0.1:9000;
    include     fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  SCRIPT_NAME    $fastcgi_script_name;
  }
  error_page 404 /404.html;  //默认的错误页面
    location = /40x.html {
  }
  error_page 500 502 503 504 /50x.html;
    location = /50x.html {
  }
}
ログイン後にコピー

もう 1 つあります:

server {
    listen    80;
    server_name www.mytest1.com;
    root     /var/www/html;
    index index.html index.htm index.php;
    location / {
      try_files $uri $uri/ /index.php?$query_string;
    }
    location = /favicon.ico {
     log_not_found off;
    }
    location ~ \.php$ {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include    fastcgi_params;
    }
}
ログイン後にコピー

3.他の仮想マシンを構築したい場合は、上記のファイルをコピーして、マークした場所を変更するだけです。

4. 仮想マシン構成ファイルを構成した後、Linux の hosts ファイルの下に上記のドメイン名を追加する必要があります。そうしないと、引き続き外部ネットワークにアクセスすることになります。

vim /etc/hosts
127.0.0.1  mytest1.com
127.0.0.1  mytest.com
ログイン後にコピー

5. Windows 上の仮想マシンで Linux 上の Web サイトにアクセスする場合は、Windows 上のすべてのドメイン名が Linux サーバーを指すように構成する必要があります。例:

192.168.0.27  mytest1.com
192.168.0.27  mytest.com
ログイン後にコピー

6. 発生した問題:

nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/vhosts/
ログイン後にコピー

この問題が発生した場合は、次のようになります:

server {
  listen    80
ログイン後にコピー
この場所の 80 以降をすべて削除し、ポート番号 80 だけを残し、これを削除します。問題は解決できる。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

Nginx 構成 PATHINFO は thinkphp Index.phpを非表示にします

以上が複数のサイトがポート 80 を共有するように nginx が構成されている問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート