Welcome! Log In Create A New Profile

Advanced

Пытаюсь понять подойдет ли для моих целей NGINX

Posted by MakPol 
Пытаюсь понять подойдет ли для моих целей NGINX
April 17, 2012 11:58AM
Доброго времени суток!

Настраиваю сервер и столкнулся с необходимостью обращаться к серверу приложений, запущеном на порту 8180 чрез стандартный http порт 80. Так на сервере развернуты и другие ресурсы, но они все спокойно поместились в Апач и его виртуальные хосты. Узнал о существовании nginx и решил попробовать настроить. Версия у меня 1.0.14.
Требовалось и требуется следующее:
обращаясь к mysite.ru чтобы переадресовывалось на localhost:8080 (настроенный Apache)
обращаясь к work.mysite.ru чтобы переадресовывалось на localhost:8180/application (работающий СП jboss) причем в строке адреса само собой должно быть work.mysite.ru

Пробовал настроить первый и второй варианты и вот как написал сответственно в файлах mysite.ru.conf и work.mysite.ru в дирректории /etc/nginx/conf.d/ :
---------------------------------------------------------------
server {

server_name mysite.ru;

access_log /var/log/nginx/mysite.access.log;

error_log /var/log/nginx/mysite.error.log debug;

location / {
root /var/www/mysite/current/public;

# proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Sendfile-Type X-Accel-Redirect;
proxy_set_header X-Accel-Mapping /var/www/mysite/releases/=/private/;

if (!-f $request_filename) { proxy_pass http://127.0.0.1:8080; break; }
}

location /private/ {
internal;
alias /var/www/mysite/releases/;
}
}
---------------------------------------------------------------
и
---------------------------------------------------------------
server {

server_name work.mysite.ru;

access_log /var/log/nginx/workmysite.access.log;

error_log /var/log/nginx/workmysite.error.log debug;

location / {
root /var/www/workmysite/current/public;

# proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Sendfile-Type X-Accel-Redirect;
proxy_set_header X-Accel-Mapping /var/www/workmysite/releases/=/private/;

if (!-f $request_filename) { proxy_pass http://127.0.0.1:8180; break; }
}

location /private/ {
internal;
alias /var/www/workmysite/releases/;
}
}
---------------------------------------------------------------
Правда что-то мне подсказывает, что я написал в эти файлы даже с избытком. Плюс ко всему не получилось сослаться заходя на work.mysite.ru чтобы переадресовывалось на localhost:8180/application (работающий СП jboss) причем в строке адреса само собой должно быть work.mysite.ru. Приходится дописывать work.mysite.ru/application. А при попытке изменить в файле
if (!-f $request_filename) { proxy_pass http://127.0.0.1:8180; break; }
на
if (!-f $request_filename) { proxy_pass http://127.0.0.1:8180/application; break; }
при запуске nginx выдается сообщение.

Помогите пожалуйста разобраться и настроить с минимумом настроек (без неиспользуемых строчек конфига).

Заранее огромное спасибо!
Попробуйте без "if (!-f $request_filename) { ".
Просто proxy_pass http://127.0.0.1:8180
А для work, попробуйте:
proxy_pass http://127.0.0.1:8180/application/;
На конце "/" (слэш).
> Требовалось и требуется
> следующее:
> обращаясь к mysite.ru чтобы
> переадресовывалось на
> localhost:8080 (настроенный Apache)

Это у вас какое-то простое проксирование получается, при этом всё отдавать Аpache будет.
Обычно же настраивают, чтобы статику отдавал nginx, а динамику отправлял на Apahce...
Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 173
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready