我已经经历了一些以前的线程: 如何在nginx中使用Django设置子目录如何在nginx 后面的子区域下部署django在 子目录nginx + uwsgi上服务烧瓶app
基本的教训是,您只需要配置您的站点(可用)即可实现此目的.我现在尝试了各种各样的排列
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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我将location定义为"/"时,一切都运行得很好(并删除SCRIPT_NAME,modifier1,PATH_INFO和root并不重要.但是尝试使用子目录总是会导致找不到页面(404):
Request URL: http://www.example.com/project/project
Run Code Online (Sandbox Code Playgroud)
(编辑)它正在为请求添加目录.我怎么不搞清楚?
(尝试过forced_script_name - 不应该使用它并给出其他类型的头痛 - 和uwsgi配置设置)
编辑:
location /project/ {
root /path/to/project;
include /etc/nginx/uwsgi_params;
uwsgi_param SCRIPT_NAME /project;
uwsgi_pass unix:/tmp/project.sock;
}
Run Code Online (Sandbox Code Playgroud)
不工作......套接字在那里,当我配置/时工作 - 我只是看不到我错过的东西.
更新:
location ~ /project(?<path_info>/.*|$) { …Run Code Online (Sandbox Code Playgroud) 我在windows上使用boot2docker Docker版本:客户端版本:0.12.0客户端API版本:1.12 Go版本(客户端):go1.2.1 Git commit(客户端):14680bf服务器版本:0.12.0服务器API版本:1.12 Go版本(服务器):go1.2.1 Git commit(server):14680bf
我基本上都是通过用户指南,一切都按预期工作,但在浏览培训烧瓶应用程序(http://docs.docker.com/userguide/usingdocker/)时,我的浏览器无法连接到Web服务器.
我已经尝试了我的每个版本的IP地址,主机名,......没有.总是"无法连接".
docker镜像正常运行:
8e9f917617ef training/webapp:latest python app.py 15秒前Up 14秒0.0.0.0:49153->5000/tcp kickass_carson
由于这是基本指南,我希望涵盖所有基础......但可能没有提到具体的windows(或boot2docker).只是找不到它.