python – 同时将nginx设置为apache和gunicorn的代理
我在
django中拥有所有代码,因此使用gunicorn来托管django,并使用nginx作为反向代理.
我现在想要使用nginx服务器作为反向代理和apache服务器在同一个域(或子域)上托管一些 PHP文件. 是否有可能为2个不同的服务器反转代理nginx? (如果gunicorn失败,请尝试apache) 我可以直接在apache上托管php文件,但是端口80由nginx承担.可以说我想使用apache在blog.XXXX.com上托管一个基于php的博客应用程序 – wordpress?和我在XXXX.com上的常规网站使用nginx和gunicorn 这是我当前nginx.conf的相关部分 server { listen 80; server_name XXXXX.com; root /home/ubuntu/code/; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 120; proxy_read_timeout 120; proxy_pass http://localhost:8000/; } } 解决方法
是的,这是可能的.您需要将Apache配置为侦听不同的端口.
不要选择保留端口并确保它是打开的(并且你可以访问它.Unix有一个端口范围,通常在/ proc / sys / net / ipv4 / ip_local_port_range中定义,如果你选择了ipv4,你可能已经通过你的Nginx配置) 对于Apache配置: 编辑apache主配置文件并设置Listen指令,如下所示: 收听127.0.0.1:u0026lt;打开的端口号> //使用8080作为开始端口 然后创建一个VirtualHost,如下所示: <VirtualHost 127.0.0.1:<port number defined above>> config goes here </VirtualHost> 您可以通过两种方式执行此操作,一种来自同一个域,另一种来自子域. 对于NGINX配置: 来自同一个域名: server { listen 80; server_name XXXXX.com; #Django app served using Gunicorn location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 120; proxy_read_timeout 120; proxy_pass http://localhost:8000/; } #PHP processed by Apache location ~ .php${ proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 120; proxy_read_timeout 120; proxy_pass http://localhost:<port you configured apache to listen on>/; } } 从子域: #Server block for Django server { listen 80; server_name XXXXX.com; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 120; proxy_read_timeout 120; proxy_pass http://localhost:8000/; } } #Server block for PHP served using Apache with a subdomain server { listen 80; server_name blog.XXXXX.com; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 120; proxy_read_timeout 120; proxy_pass http://localhost:<port you configured apache to listen on>/; } } 注意:您不需要root指令,因为您的应用程序由Gunicorn提供或交给Apache(您将在VirtualHost中定义根目录) 一旦你编辑了配置文件,重新启动Apache,然后重新启动Nginx,它应该工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |