是的,这是可能的。不过,您需要将 Apache 配置为侦听不同的端口。
不要选择保留端口并确保它是打开的(并且您可以访问它。Unix 有一个端口范围,通常在/proc/sys/net/ipv4/ip_local_port_range
您选择 ipv4 时定义,您可能根据您的 Nginx 配置判断)
对于 Apache 配置:
编辑你的 apache 主配置文件并设置Listen
指令如下:
Listen 127.0.0.1:<port number that's open>
//使用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,它应该可以工作了。