2013-09-03 2 views
0

У меня есть виртуальная машина Ubuntu 13.04 с сервером front-сервера nginx и базовым сервером apache , обслуживающим проект django. Кажется, что Apache работает нормально при работе отдельно от от nginx (и наоборот). Но похоже, что запросы не передаются nginx в Apache, когда они работают вместе.nginx frontend server не перенаправляется на сервер Apache

После ввода в my_host_name.com в браузере я получаю nginx "Welcome ....!" page, , но это должна быть страница, обработанная apache.

UPD: (? Кэширование) «Добро пожаловать ...» появляется страница только при первой загрузке, после браузера (хром) перезапускается, в противном случае он возвращает только пустую страницу ("Этот сайт не доступен .......... Код ошибки: ERR_CONNECTION_RESET"). Я получаю ту же самую страницу ошибки при доступе к _my_domain_name.com_ из ОС хоста. Я перезапускаю оба сервера (на всякий случай) после каждого изменения конфигурации.

Typing в my_domain_name.com:8000 возвращает правильный ответ апачского (статические файлы исключенных)

После дня прибегая к помощи до сих пор не может найти то, что случилось.

Настройки Мои серверы являются:

Файл:/и т.д./Nginx/proxy_params

proxy_redirect    off; 
proxy_set_header Host $host; 
proxy_set_header X-Forwarded-Host $host; 
proxy_set_header X-Forwarded-Server $host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
client_max_body_size  10m; 
client_body_buffer_size  128k; 
proxy_connect_timeout  90; 
proxy_send_timeout   90; 
proxy_read_timeout   90; 
proxy_buffer_size   4k; 
proxy_buffers    4 32k; 
proxy_busy_buffers_size  64k; 
proxy_temp_file_write_size 64k; 

Файл:/и т.д./Nginx/сайты-доступные/my_domain_name

server { 
    listen 80; 
    server_name my_domain_name.com; 
    location/{ 
     access_log /var/log/nginx/localhost.access.log; 
     proxy_pass http://127.0.0.1:8000; 
     include /etc/nginx/proxy_settings; 
    } 
    location /static/ { 
     root /path/to/my/project/root; 
    } 
    location /media/{ 
     root /path/to/my/project/root; 
    } 
} 

Файл: /etc/apache2/sites-available/my_domain_name.conf

<VirtualHost *:8000> 
    WSGIScriptAlias//path/to/my/project/root/django.wsgi 

    ServerName my_domain_name.com 


    <Directory /path/to/my/project/root> 
     Order allow,deny 
     Allow from all 
    </Directory> 

    LogLevel warn 

    CustomLog /var/log/apache2/access.log combined 

    RPAFenable On 
    RPAFsethostname On 
    RPAFproxy_ips 192.168.137.10 127.0.0.1 
</VirtualHost> 

Файл: /etc/apache2/ports.conf

NameVirtualHost *:8000 
Listen 8000 

Файл:/и т.д./хосты

192.168.137.10 my_domain_name.com 
127.0.0.1  my_domain_name.com 

Спасибо!

+0

Если вы новичок на все это, просто использовать gunicorn. Если вы уже закончили проект, а не только начинаете, вам будет сложно. –

+0

@GamesBrainiac, похоже, что проблема не в Apache (он все еще отлично работает при доступе напрямую через порт 8000). Спасибо за совет! Я определенно попытаюсь использовать пушки, если нет быстрого решения. – vntz123

+0

Вы называете 'my_domain_name.com' или' www.my_domain_name.com'? причина есть разница –

ответ

0

У меня была аналогичная проблема с моей установки Nginx с моей Apache обратно конца, особенно когда Apache был выпуск редирект для:

/some-location => /some-location/ 

Nginx был запущен на порту 80, и мой задний конец Apache на порту 8000. и порт 8000 передавался клиенту в 301 переадресации.

Это заняло немного времени, но я смог заставить его работать. Вот то, что я должен был сделать:

location/{ 
    proxy_pass  http://127.0.0.1:8000; 
    proxy_redirect default; 
    proxy_redirect http://$host:8000/ http:/$host/; 
    ... etc .. 
} 

Оба Nginx и Apache виртуальные серверы используют то же имя хоста (т.е. mydomain.com)

Смежные вопросы