Я уже пережил несколько предыдущих потоков: 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 служит Django в подкаталоге через 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, модификатор1, PATH_INFO и корень не имеет значения. Но пытаться использовать подкаталог всегда приводит к Страница не найдена (404).?
Request URL: http://www.example.com/project/project
(редактировать) это ДОБАВЛЕНИЕ каталог на запрос Что я не выясняя
(пробовал forced_script_name - should't должны использовать это и дает другие типы головных болей - и настройка конфигурации uwsgi)
EDIT:
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