首頁 >後端開發 >php教程 >如何解決nginx配置多個站點的共用80埠的問題

如何解決nginx配置多個站點的共用80埠的問題

不言
不言原創
2018-06-11 14:11:317951瀏覽

這篇文章主要介紹了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資料夾,專門放置網站的設定檔。

貼一個我的設定上來:

/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 {
  }
}

再來一個:

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下面的網站,那麼還要在windows下面配置hosts文件,所有的網域都指向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中文網!

相關建議:

Nginx設定PATHINFO隱藏thinkphp index.php

以上是如何解決nginx配置多個站點的共用80埠的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn