我已经按照DigitalOcean教程在DigitalOcean上部署了django应用程序,该指南是:
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-local-django-app-to-a-vps
问题: 问题是,当我使用浏览器访问IP时,看到的是欢迎使用nginx 页面,而不是我的django应用。
教程重点
请仔细阅读本教程,如教程所述,我没有看到以下错误:server_names_hash, you should increase server_names_hash_bucket_size: 32
我所做的与本教程之间的另一个重要区别是gunicorn_django --bind yourdomainorip.com:8001
对我不起作用。
我使用此语句来启动枪械:
web: gunicorn --chdir code/computationalMarketing computationalMarketing.wsgi --log-file -
我的配置
在/etc/nginx/sites-enabled
,我有一个名为computationalMarketing
的符号链接,它指向/etc/nginx/sites-available/computationalMarketing
此文件包含以下几行:
server {
listen 127.0.0.1;
server_name 159.65.18.211;
error_log /var/log/nginx/localhost.error_log info;
root /var/www/localhost/htdocs;
location /static/ {
alias /opt/computationalMarketing/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
我在/opt/computationalMarketing
有一个virtualenv,在其中有另一个computationalMarketing
回购文件的Git
文件夹。
此仓库具有以下结构:
我的装置是:
sudo pip3 install numpy==1.13.3
sudo pip3 install pandas==0.22.0
sudo pip3 install scikit-learn==0.19.1
sudo pip3 install pymysql==0.8.1
sudo pip3 install psycopg2==2.7.3.2
sudo pip3 install django==2.0.5
sudo pip3 install django-connection-url==0.1.2
sudo pip3 install whitenoise==3.3.1
sudo pip3 install gunicorn==19.7.1
数据库是一个Postgresql,我可以毫无问题地连接它。
有人能猜出为什么我看到nginx页面而不是我的django应用程序吗?
答案 0 :(得分:0)
您已经告诉Nginx仅在localhost上侦听此特定配置。不要那样做完全删除listen
行。
您的问题中还有其他一些奇怪的事情。您声称用来启动gunicorn的命令是Procfile指令,您实际上不能在命令行上运行它。您实际上使用什么命令来启动Gunicorn?无论您使用什么,都需要告诉它在nginx代理的同一端口上服务-对于您的情况是8001。