我已經通過以前的一些線程去服務Django的一個子目錄: How do I set subdirectory in nginx with Django how to deploy django under a suburl behind nginx Serving flask app on subdirectory nginx + uwsginginx的通過uWSGI
的基本教訓是,你應該只需要配置您的網站(可用)來實現這個。現在我已經試過
server {
listen 80;
server_name www.example.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /path/to/project;
}
location /project/ {
root /path/to/project;
include /etc/nginx/uwsgi_params;
uwsgi_param SCRIPT_NAME /project;
uwsgi_modifier1 30;
uwsgi_param PATH_INFO "$1";
uwsgi_pass unix:/tmp/project.sock;
}}
一切的各種排列運行完美,當我定義的位置是「/」(並刪除SCRIPT_NAME,modifier1,PATH_INFO和根本無所謂。但是試圖用一個子目錄總是導致找不到網頁(404):?
Request URL: http://www.example.com/project/project
(編輯),它增加了目錄的要求什麼我不搞清楚
(試過forced_script_name - should't必須使用這個並給出其他頭痛類型 - 和uwsgi配置設置)
編輯:
location /project/ {
root /path/to/project;
include /etc/nginx/uwsgi_params;
uwsgi_param SCRIPT_NAME /project;
uwsgi_pass unix:/tmp/project.sock;
}
不工作...套接字是存在的,當我配置/工程 - 我看不出我錯過了什麼。
UPDATE:
location ~ /project(?<path_info>/.*|$) {
include /etc/nginx/uwsgi_params;
uwsgi_pass unix:/tmp/project.sock;
uwsgi_param PATH_INFO $path_info;
uwsgi_param SCRIPT_NAME /project;
}
這將加載了網站,但所有的鏈接指向http://example.com/link/to/something而不是http://example.com/project/link/to/something
django 1.9.2,uwsgi 2.07-debian (在ubuntu 15.10服務器上運行) – Bjorn