2016-08-31 2 views
0

Я пытаюсь создать сервер nginx, который может размещать несколько сайтов на одном сервере. Я сохранил два разных каталога, содержащих файлы index.html в каталоге/var/www /.Конфигурация nginx для нескольких сайтов на одном сервере

1-й каталог: dir1 Содержит папку strucuture as: dir1/Папка/приложение; Каталог приложений содержит index.html для сайта.

2-й каталог: dir2 Содержит папку strucuture as: dir2/Папка/приложение; Каталог приложений содержит index.html для сайта.

Теперь внутри /etc/nginx/conf.d, создал 2 .conf файлы как test.conf и dev.conf

test.conf:

server { 
    listen 80 default_server; 
    server_name mydomain.net; 
    location /dir1/ { 
     root /var/www/dir1/PharmacyAdminApp/app; 
     index index.html index.htm; 
     try_files $uri $uri/ =404; 
    } 
} 

dev.conf

server { 
    listen 80 default_server; 
    server_name mydomain.net; 
    location /dir2/ { 
     root /var/www/dir2/PharmacyAdminApp1/app; 
     index index.html index.htm; 
     try_files $uri $uri/ =404; 
    } 
} 

После этого я перезапускаю сервер nginx и посещаю «mydomain.net:80/dir1» в браузере, но я получаю 404. Может ли кто-нибудь сообщить мне, в чем проблема?

+0

И если вы попробуете «mydomain.net:80/dir1/» в своем браузере? То же самое? (Обратите внимание на конечную косую черту в URL-адресе) –

+0

Да, это так же, как для dir1, так и для dir2. –

+0

Вы уверены, что конфигурация загружена? Попробуйте 'nginx -t'. У вас есть два одинаковых блока сервера (что неверно). Вам нужен один серверный блок, содержащий два блока местоположения. –

ответ

0

выше конфигурация должна вызвать ошибку, как вы определили два default_server, И нет никакого смысла в определении двух блоков сервера для одной и той же области,

Это, как вы можете достичь его,

map $request_uri $rot { 
    "~dir1" /var/www/dir1/Folder/app/; 
    default /var/www/dir2/Folder/app/; 
} 
server { 
    listen 80 default_server; 
    server_name mydomain.net; 
    root $rot; 
    index index.html; 

    location/{ 
     try_files $uri $uri/ index.html =404; 
    } 
} 

другой путь может быть,

server { 
    listen 80 default_server; 
    server_name mydomain.net; 

    location /dir2/ { 
     root /var/www/dir2/PharmacyAdminApp1/app; 
     index index.html index.htm; 
     try_files $uri $uri/ /index.html =404; 
    } 
    location /dir1/ { 
     root /var/www/dir1/PharmacyAdminApp1/app; 
     index index.html index.htm; 
     try_files $uri $uri/ /index.html =404; 
    } 
} 

Если он по-прежнему бросает какую-либо ошибку, переключить error_log дальше, и проверить, какие файлы доступны, и исправить оттуда.

+0

Если это решит вашу проблему, можете ли вы, пожалуйста, продолжить? :) – Satys

+0

Спасибо, Сатис, это решило мою проблему, но теперь у меня другая проблема с этим ... Когда я пытаюсь посетить веб-сайт в браузере, происходит следующее ... Приложение для папки содержит разные каталоги, которые есть. js и .css, но браузер или nginx пытаются найти их на имя_сервера, например http: //server_name/components/order/orderCntrl.js, тогда как оно должно выполняться как http: // имя_сервера/$ root/components/order/orderCntrl. Вы знаете, почему это происходит? –

+0

вы можете сказать, где хранятся ваши файлы js для разных/dir? и как вы к нему обращаетесь, url? вы сейчас получаете 404? – Satys