bizzi
@bizzi
junior php web developer

Как настроить Nginx под отдельный проект, когда уже установлен Apache?

Господа добрый день!
Поставила в тупик сия ситуация.
Ранее работала с проектами на php фреймворках, лежат они у меня в /var/www/html и под каждый я выделяю отдельный порт в настройках Apache, вот так:

в etc/apache2/sites-available/000-default.conf приписываю:

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/projectname

ErrorLog ${APACHE_LOG_DIR}/error-projectname.log
CustomLog ${APACHE_LOG_DIR}/access-projectname.log combined

и добавляю в /etc/apache2/ports.conf
Listen 85

И тут подогнали работу с js. Вижу в руте файл nginx.conf, смекнула что надо его установить.

Нагуглила несколько статей по настройке nginx+apache, пробую настроить - не выходит.

Вижу сам процесс так: я кладу проект в папку /var/www/html, выделяю по привычке отдельный порт в настройках апача(например VirtualHost *:85), а потом еще и nginx настраиваю конкретно под него.

В некоторых статьях написано про настройку /etc/nginx/sites-available/default
В некоторых про настройку /etc/nginx/nginx.conf.

Пробовала с /etc/nginx/nginx.conf

Не пойму, что надо писать в server, если у меня выделен под это отдельный порт 85 в настройках апача?
server {
client_max_body_size 10M;
listen 85;
server_name myprojeckt; <--- вот тут указывать имя? или localhost:85?или можно вообще не указывать?
}
вот тут
location / {
proxy_pass 127.0.0.1:8080/; <-- менять это значение?

Что делать с /etc/nginx/sites-available/default? я так поняла надо его скопировать и переименовать в /etc/nginx/sites-available/myproject? и в нем прописать настройки для своего проекта типа

server {
listen 85;
server_name myproject;
access_log /home/example/logs/myproject_nginx_access.log;
error_log /home/example/logs/myproject_nginx_error.log;
location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|docx|xlsx)$ {
root /home/example/www/; <----здесь писать папку куда я проект положила?
index index.html index.php; <------ обязательно ли указывать стартовую страницу?
access_log off;
expires 30d;
}
location ~ /\.ht {
deny all;
}

location / {
proxy_pass 127.0.0.1:8080/; <------------не понимаю нужно ли тут изменить порт?
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_redirect off;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
}

В голове сейчас каша полная. Помогите разобраться.
  • Вопрос задан
  • 462 просмотра
Пригласить эксперта
Ответы на вопрос 2
dvachek
@dvachek
Вы пытаетесь заставить apache и nginx слушать один и тот же порт, и кто тогда из них должен будет отдать контент при запросе?

Принимать запрос должен nginx на том порту который вам нужен (85), а потом в proxy_pass адресовать его на тот порт на котором стоит apache (любой другой, например 86).
Ответ написан
laduwka
@laduwka
Unix администратор
Зачем вам вообще nginx? Апач прекрасно умеет отдавать статику. У вас же не высоконагруженные проекты, это просто разработка?
Я правильно понимаю, что вы развешиваете сайты по разным портам?
Проще все отдавать с 80 по доменным именам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы