I am trying to run nginx as reverse proxy for Apache on the same machine and serve different websites from it.
My question is - is it possible to add virtual hosts only to nginx and have it pass the url/hostname/path, etc to Apache automatically depending on which host is requested.
OR do I need to set up a virtual host for every site (domain) in both nginx and Apache?
Also, are there any potential issues with this setup?
What I am planning to have in my nginx config is something like this for each domain (Apache is running on port 8080):
server {
listen 80;
root /var/www/site1.com/;
server_name site1.com;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
Thanks!
Answer
This is possible.
On Apache web server, you need to store all the files on a default virtual host so it can be accessed as http://IP_ADDRESS:PORT/hostname/path/
On Nginx server create multiple virtual hosts & add a proy_pass rule like below.
A.com -> / will proxy forward to /a-com/
B.com -> / will proxy forward to /b-com/
C.com -> / will proxy forward to /c-com/
Hope this helps you.
No comments:
Post a Comment