python – 同时将nginx设置为apache和gunicorn的代理

python – 同时将nginx设置为apache和gunicorn的代理,第1张

概述我在 django中拥有所有代码,因此使用gunicorn来托管django,并使用nginx作为反向代理. 我现在想要使用nginx服务器作为反向代理和apache服务器在同一个域(或子域)上托管一些 PHP文件. 是否有可能为2个不同的服务器反转代理nginx? (如果gunicorn失败,请尝试apache) 我可以直接在apache上托管php文件,但是端口80由nginx承担.可以说我想 我在 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 subdomainserver {    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,它应该工作.

总结

以上是内存溢出为你收集整理的python – 同时将nginx设置为apache和gunicorn的代理全部内容,希望文章能够帮你解决python – 同时将nginx设置为apache和gunicorn的代理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存