nginx具有自己配置的多个子域

时间:2014-06-22 12:15:15

标签: nginx

nginx web服务器在我的ubuutu服务器上运行。我在/var/www下有多个网站。让它保持简单(myipaddres/web1 & myipaddres/web2)

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

但我希望为每个子域(myipaddres/web1 & myipaddres/web2)提供唯一的nginx配置,例如

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

1 个答案:

答案 0 :(得分:0)

每个服务器必须具有唯一的对server_namelisten $port

所以你有两个变种:

  1. server_name更改为localhost2,并将127.0.0.1 localhost添加到/ etc / hosts。 (不良变体)
  2. 使用location
  3. 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; }