Я хочу настроить набор веб-сервисов для моих коллег из моей лаборатории; простые вещи, такие как вики, cms, git и т. д., чтобы мы могли лучше документировать наши проекты. Я физик, а не CS, поэтому извините, если я что-то упускаю очевидное.
Службы будут находиться за одним и тем же (общедоступным) IP-адресом. Для этого я бы настроил виртуальные машины в качестве поставщиков услуг и установил Nginx на хост-машине, чтобы перенаправить соответствующие вызовы на виртуальные машины.
Кажется, проблема связана с (url) путем, используемым после имени хоста. Я не знаю, связано ли это с перенаправлением Nginx или с самими веб-сервисами.
В настоящее время сценарий выглядит следующим образом:
- Хост-машина имеет публичный IP-адрес, связанный с доменным именем. Позвольте мне использовать здесь, для простоты, "www.example.com".
- Виртуальные машины имеют частные IP-адреса. На одном установлен Drupal, на другом - Mediawiki, на третьем - Gitlab.
- Машина "drupal" имеет IP 192.168.56.20
- Машина "wiki" имеет IP 192.168.56.11
- Машина "git" имеет IP 192.168.56.19
- На хост-машине установлен (помимо VirtualBox) Nginx. Моя цель с Nginx - найти простое решение для следующих перенаправлений:
- www.example.com/drupal --- & gt; едет в "друпал" автомат
- www.example.com/wiki --- & gt; идет к "вики" машине
- www.example.com/git --- & gt; идет к "мерзавцу" машины
- Для настройки Nginx я просто изменил файл конфигурации по умолчанию (
/etc/nginx/sites-enabled/default
).
Проблема (и) у меня есть:
- Когда я пытаюсь получить доступ www.example.com/wiki
(с любой машины в сети) или localhost/wiki
(с хост-машины), URL меняется на (обычный) www.example.com/wiki
или же localhost/Main_Page
соответственно и получаю ошибку "404 Not Found".
- То же самое происходит, когда я пытаюсь localhost/git
: Я получаю ошибку «404 Not Found», после перенаправления на localhost/users/sign_in
,
- Когда я пытаюсь localhost/drupal
все работает нормально, но только до тех пор, пока я не изменю путь веб-сайта (например, нажимаю кнопку «зарегистрироваться»), затем localhost/user/register
больше не работает («404 Not Found»).
Я понимаю, что это ошибки, связанные с URL. Мне ясно, что Nginx не знает, что делать (например, с) localhost/Main_Page
так как я не сказал ему, что с этим делать, но как мне это исправить? Я имею в виду, кто отвечает за это между Nginx и сервисом (ами)?
Лог и конфиг следуют. Изменения, которые я сделал в конфигурационном файле Nginx, были взяты из этого приятного руководство ,
Любая помощь? Заранее спасибо.
Вот журнал, в котором я пытался получить доступ (как описано выше) к "/ wiki", "/ git" и "/ drupal (и нажав на кнопку" зарегистрироваться ")" с "localhost":
127.0.0.1 - - [29/Jul/2015:12:44:41 +0200] "GET /wiki HTTP/1.1" 301 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
127.0.0.1 - - [29/Jul/2015:12:44:41 +0200] "GET /Wiki HTTP/1.1" 404 208 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
127.0.0.1 - - [29/Jul/2015:12:45:17 +0200] "GET /wiki HTTP/1.1" 301 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
127.0.0.1 - - [29/Jul/2015:12:45:17 +0200] "GET /Main_Page HTTP/1.1" 404 208 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
127.0.0.1 - - [29/Jul/2015:12:45:24 +0200] "GET /git HTTP/1.1" 302 111 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
127.0.0.1 - - [29/Jul/2015:12:45:24 +0200] "GET /users/sign_in HTTP/1.1" 404 208 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
127.0.0.1 - - [29/Jul/2015:12:45:31 +0200] "GET /drupal HTTP/1.1" 200 2255 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
127.0.0.1 - - [29/Jul/2015:12:45:36 +0200] "GET /user/register HTTP/1.1" 404 208 "http://localhost/drupal" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
Вот мой конфигурационный файл Nginx:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /wiki {
rewrite ^/wiki(.*) /$1 break;
proxy_pass http://192.168.56.11;
}
location /drupal {
rewrite ^/drupal(.*) /$1 break;
proxy_pass http://192.168.56.20;
}
location /git {
rewrite ^/git(.*) /$1 break;
proxy_pass http://192.168.56.19;
}
location /google {
rewrite ^/google(.*) /$1 break;
proxy_pass http://www.google.com;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}