1. на Apache настраиваешь VirtualHost. Перенастраиваешь Apache с 80 н любой другой порт, например 8080.
2. Устанавливаешь Nginx
3. Настраиваешь виртуалхосты:
server {
listen 80;
server_name www.site.com;
access_log /var/log/nginx/www.site.com.log;
error_log /var/log/nginx/www.site.com_error.log info;
index index.php index.html index.htm;
location / {
proxy_pass
http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
index index.php index.html;
}
server {
listen 80;
server_name www.api.site.com;
access_log /var/log/nginx/www.api.site.com.log;
error_log /var/log/nginx/www.api.site.com_error.log info;
index index.php index.html index.htm;
location / {
proxy_pass
http://127.0.0.1:7545;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
index index.php index.html;
}
4. Перезапускаешь апач и nginx и наслаждаешься.
Обрати внимание, в первом виртуалхосте ты прорисуешь запросы к домену www.site.com на локальный апач на порт 8080, во втором виртуалхосте ты прорисуешь запросы к домену www.api.site.com на локальную службу, которая слушает порт 7545.
Nginx вообще очень интересная штуковина в этом плане. Можно так проксировать любой протокол.
Расскажу тебе из опыта. У меня есть парк серверов с различными сервисами раскиданными по инету и ЦОД-ам. Есть самый дешевый VDS, на котором настроен nginx на проксирование запросов к различным хостам и сервисам, это и http, и imap, и pop3, и smtp, и https, и даже ldaps. внутри proxy_pass прописывается на разные хосты, а на тех уже хостах настроен файрвол на получение запросов только от VDS.