2014-06-22 77 views
1

nginx web服務器在我的ubuutu服務器上運行。我在/var/www下有多個網站。讓我們保持它的簡單(myipaddres/web1 & myipaddres/web2)nginx具有自己配置的多個子域

/var/www/web1 
/var/www/web2 

目前我的nginx CONFG(單個文件)看起來像這樣(root points /var/www)

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 
    server_name localhost; 
    root /var/www; 
    index index.php index.html index.htm; 
} 

但我想有獨特的nginx的配置爲每個子域(myipaddres/web1 & myipaddres/web2)

/etc/nginx/sites-available/web1 & /etc/nginx/sites-available/web2 

我正在嘗試這樣的事情,但nginx無法重新加載。

/etc/nginx/sites-available/web1 

看起來像這樣

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 
    server_name localhost; 
    root /var/www/web1; 
    index index.php index.html index.htm; 
} 
/etc/nginx/sites-available/web2 

看起來像這樣

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 
    server_name localhost; 
    root /var/www/web2; 
    index index.php index.html index.htm; 
} 

回答

0

每個服務器必須有唯一的一對server_namelisten $port

所以,你有兩個變種:

  1. 變化server_namelocalhost2一些,並添加127.0.0.1 localhost到你的/ etc/hosts文件。 (壞變體)
  2. 使用location

server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name localhost; index index.php index.html index.htm; location /web1 { root /var/www; } location /web2 { root /var/www; } }

,或者如果你想對每個應用不同的文件:

server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name localhost; index index.php index.html index.htm; include locations/app*.conf; }

和兩個文件:/etc/nginx/locations/app1.conf/etc/nginx/locations/app2.conf 文本

location /web1 { root /var/www; }

location /web2 { root /var/www; }

+0

定位方法效果很好。當只有我的IP地址(myipaddress)在沒有子目錄位置(myipaddress/web1)的瀏覽器中給出時,它會加載404頁面,有什麼方法可以防止這種情況發生? (當我給出myipaddress時,我不想加載任何東西)。謝謝 – kuruvi

+0

'location/{ root/var/www; }位置web1和web2之後 –