我在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,它应该工作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。