Как настроить связку Nginx + Apache правильно?
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 5
- Зарегистрирован: 2020-12-16 11:15:43
Как настроить связку Nginx + Apache правильно?
Здравствуйте коллеги,
Объясните мне пожалуйста, как корректно настроить связку Nginx + Apache с несколькими сайтами на разных портах.
Я настраиваю ее впервые и не могу понять как это сделать правильно.
Скажем на Apache у меня есть два web-сервиса работающих на разных портах (8855 и 8836), как мне их пробросить в Nginx так, чтобы еще и стартовую страницу Apache видеть тоже?
Конечно в интернете полно описаний, все пишут "измените VirtualHost на *:8080", но тогда сайты, кроме стартовой страницы Apache, перестают работать.
Что не так? Как правильно?
Объясните мне пожалуйста, как корректно настроить связку Nginx + Apache с несколькими сайтами на разных портах.
Я настраиваю ее впервые и не могу понять как это сделать правильно.
Скажем на Apache у меня есть два web-сервиса работающих на разных портах (8855 и 8836), как мне их пробросить в Nginx так, чтобы еще и стартовую страницу Apache видеть тоже?
Конечно в интернете полно описаний, все пишут "измените VirtualHost на *:8080", но тогда сайты, кроме стартовой страницы Apache, перестают работать.
Что не так? Как правильно?
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- проходил мимо
Как настроить связку Nginx + Apache правильно?
не так - это то что Вы не понимаете как работает Apache.Что не так? Как правильно?
Разберитесь как работает Apache, потом разберитесь как работает Nginx
и уж потом станет понятно, как и для чего nginx используют как
front-end к apache.
делают ровно наоборот.Скажем на Apache у меня есть два web-сервиса работающих на разных портах (8855 и 8836), как мне их пробросить в Nginx так, чтобы еще и стартовую страницу Apache видеть тоже?
Чтобы понять как работает Apache и Virtual-Host в нем, нужно знать как работает DNS
и тогда не будет никаких проблем:
https://httpd.apache.org/docs/2.4/vhosts/index.html
по ссылке расписаны обе технологии и плюс примеры использования:
https://httpd.apache.org/docs/2.4/vhosts/examples.html
Если прочитаете внимательно, все поймете, не будете читать, так и будете мыкаться по форумам
и получать полу-ответы и полу-меры...
две технологии:
- Name-based Virtual Hosts (позволяет использовать много web-сайтов на одном ip-адресе)
для этого требуется в DNS настроить RR=A для каждого сайта.
- IP-based Virtual Hosts (для каждого сайта ОДИН выделенный ip-адрес)
Смешанный вариант: в одной конфигурации name-based и ip-based сайты
- wien
- сержант
- Сообщения: 151
- Зарегистрирован: 2014-06-26 18:38:44
- Откуда: DafaultCity
- Контактная информация:
Как настроить связку Nginx + Apache правильно?
Front-End: Nginx, прослушиваемые порты 80, 443.
Back-End: Apache, висит на localhost, т.е. 127.0.0.1, слушает порт 8080:
Пример реально рабочий, предварительно обезличенный
Чтобы апач слушался как у меня и прочие фишки работали, в конфиге httpd.conf должны быть такие строки:
Код: Выделить всё
server {
listen 80;
server_name mysite.ru www.mysite.ru;
root /var/www/sites/shops/www/mysite.ru;
return 301 https://mysite.ru$request_uri;
}
server {
listen 443;
# Server name and alias
server_name mysite.ru www.mysite.ru;
# SSL support
ssl on;
ssl_certificate /etc/letsencrypt/live/mysite.ru/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/mysite.ru/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
client_body_buffer_size 8k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_send_lowat 0;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
proxy_busy_buffers_size 8k;
proxy_temp_file_write_size 8k;
}
# Static content
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|mp3|bmp|flv|rtf|js|swf|iso)$ {
root /var/www/sites/shops/www/mysite.ru;
access_log off;
expires 1d;
}
# Deny access to .htpasswd files
location ~ /\.ht {
deny all;
access_log off;
log_not_found off;
}
# Logs
access_log off;
error_log /var/www/sites/shops/log/nginx_error.log;
}
Код: Выделить всё
<VirtualHost 127.0.0.1:8080>
ScriptAlias /cgi-bin/ /var/www/sites/shops/cgi-bin/
ServerAdmin support@mysite.ru
SuexecUserGroup shops shops
DocumentRoot /var/www/sites/shops/www/mysite.ru
ServerName mysite.ru
ServerAlias www.mysite.ru
SetEnvIf X-Forwarded-Proto https HTTPS=on
<Directory /var/www/sites/shops/www/mysite.ru>
Options -Indexes +FollowSymLinks +ExecCGI
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/sites/shops/cgi-bin>
AllowOverride None
Options None
Require all granted
</Directory>
DirectoryIndex index.php index.html index.htm index.shtml
ErrorLog /dev/null
</VirtualHost>

Чтобы апач слушался как у меня и прочие фишки работали, в конфиге httpd.conf должны быть такие строки:
Код: Выделить всё
Listen 127.0.0.1:8080
LoadModule rpaf_module libexec/apache24/mod_rpaf.so
ServerName 127.0.0.1:8080
# For security. Hide version
ServerSignature Off
ServerTokens Prod
# Enable RPAF module
RPAFenable On
# Set hostname transmit
RPAFsethostname On
# Front-end address
RPAFproxy_ips 127.0.0.1
# Header name
RPAFheader X-Real-IP
-
- проходил мимо
- Сообщения: 5
- Зарегистрирован: 2020-12-16 11:15:43
Как настроить связку Nginx + Apache правильно?
Пока ожидал ответов на свой вопрос сам нашел решение. Но какое уже не помню.
-
- проходил мимо
- Сообщения: 5
- Зарегистрирован: 2020-12-16 11:15:43
-
- проходил мимо
Как настроить связку Nginx + Apache правильно?
ну теперь думаю надо вам идти дальше и исключить из этой связки вообще апач
- darkfire
- рядовой
- Сообщения: 10
- Зарегистрирован: 2010-01-12 0:41:24
- Откуда: Харьков
- Контактная информация:
Как настроить связку Nginx + Apache правильно?
Для нового проекта можно и исключить Apache и запускаться только на Nginx. Но существующий проект не советую, на том же wordpress некоторые плагины достаточно трудно запустить на голом Nginx.
Нравится упорядочивать https://wiki.dieg.info