我有一个现有的Apache服务几个网站。
现在我有一个新的Django站点,这是Ajax密集型,所以我打算在Apache的mod_wsgi上运行它,但我将使用nginx作为反向代理。
是否有可能让nginx成为这个新的django网站的反向代理,同时使Apache不直接服务于其他网站,而不使用nginx?
另外,如果你能给我一个粗略的设置,如果可能的话我该怎么做。
我解决这个问题的方法是让nginx反向代理所有的站点,但让他们去不同的端口上侦听不同的Apache虚拟主机。
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; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
在/ etc / nginx的/启用的站点- /默认
server { listen 80; server_name django-site.com; location / { proxy_pass http://127.0.0.1:8085; include /etc/nginx/proxy.conf; } } server { listen 80; server_name regular-site.com; location / { proxy_pass http://127.0.0.1:8086; include /etc/nginx/proxy.conf; } }
Django的网站
NameVirtualHost 127.0.0.1:8085 <VirtualHost 127.0.0.1:8085> ServerName django-site.com <Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE settings PythonOption django.root PythonDebug On PythonPath "['/django/django-site'] + sys.path" </Location> </VirtualHost>
定期上门
NameVirtualHost 127.0.0.1:8086 <VirtualHost 127.0.0.1:8086> ServerName regular-site.com ServerAlias regular-site.com ServerAdmin [email protected] DocumentRoot /var/www/regular-site/ </VirtualHost>
在/etc/apache2/apache2.conf
# Include ports listing Include /etc/apache2/ports.conf
ports.conf必须列出每个端口 /etc/apache2/ports.conf
#Listen 80 #disabled for nginx Listen 8085 Listen 8086 <IfModule mod_ssl.c> Listen 443 </IfModule>