是的,這是可能的相關部分。您需要將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 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>/;
}
}
注:你不需要根指令,因爲你的應用程序由Gunicorn提供服務或被移交給Apache(你將在VirtualHost中定義一個根)
一旦你編輯了你的配置文件,重新啓動Apache,然後重新啓動Nginx,它應該工作。
我在看類似的問題..你找到一個解決方案.. – Amistad