Например, мы делаем запрос http://mysiteproxy/index/action1 и выдается страница с
http://site1/index/action1, а если делаем запрос http://mysiteproxy/index/action2 -
получаем http://site2/index/action2. Что-то вроде этого. Пример для ubuntu.
Настраиваем nginx и apache2.
Apache будет слушать порт 8080.$ sudo nano /etc/apache2/ports.conf ... NameVirtualHost *:8080 Listen 8080 ...Настриваем проксирование запросов к apache. Создаем файл
/etc/nginx/conf.d/proxy.conf
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; client_max_body_size 10m; client_body_buffer_size 128k; client_header_buffer_size 64k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 16k; proxy_buffers 32 16k; proxy_busy_buffers_size 64k;Редактируем настройки хоста по-умолчанию /etc/nginx/sites-available/default.
Все запросы шлем на localhost:8080, по-умолчанию nginx висит на порту 80. Не забываем потом поместить конфиг. файл в sites-enabled. Я обычно делаю ссылку.
server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 root /usr/share/nginx/www; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.html; proxy_pass http://127.0.0.1:8080; } }Перезапускаем сервера
sudo /etc/init.d/apache2 restart sudo /etc/init.d/nginx restart
Настраиваем хост-прокси
Создаем конфигурационный файл хостаsudo nano /etc/nginx/sites-avaliable/mysiteproxy.conf server { listen 80; server_name mysiteproxy; access_log /var/log/nginx/access.log; location = / { include /etc/nginx/site1.proxy.conf; } location / { include /etc/nginx/site2.proxy.conf; } location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$ { root /var/www/site1/; } }Тут директивы location указывают как будут проксироваться запросы (подробно в документации nginx).
В данном случае главная будет с site1, внутренние страницы - site2.
Создаем два файла конфигурации прокси
sudo nano /etc/nginx/site1.proxy.conf proxy_pass http://127.0.0.1:8080/; proxy_set_header Host site1; proxy_redirect http://site1/ /; 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_buffers 32 4k;Аналогично для второго хоста.
Перезапускаем nginx
sudo /etc/init.d/nginx restartЕсли не настраиваем DNS, то прописываем хосты в /etc/hosts.
Комментариев нет:
Отправить комментарий