Articles of django

Apache忽略.htaccess

Apache忽略我的.htaccess文件。 我已经读了或多或less关于这个问题的每一个线索,我可以find并尝试所有的解决scheme,没有任何工作。 我已经尝试过不止一次。 设置 VPS上的Ubuntu 16.04.1 LTS(GNU / Linux 4.4.0-57-generic x86_64) Apache / 2.4.18(Ubuntu) Django 1.10通过WSGI Python 3.5在virtualenv 我想提供一些文件,只能通过批准的IP范围或用户login。 我有一个.htaccess文件,我以前曾经在一个基于php的网站的虚拟主机上使用,现在我想让它在一个基于Django的网站上使用VPS。 以下目录的名称已被更改,但应忠实于设置。 文件的位置 .htaccess文件里面的/dir在一个子目录中, /dir/1/2/3 1/2/3。 我希望它将设置应用于该子目录中的每个子目录,例如/dir/1/2/3/a 1/2/3 /dir/1/2/3/a , /dir/1/2/3/b , /dir/1/2/3/c 。 这些目录具有应该被保护访问的文件(例如/dir/1/2/3/a/file.pdf )。这应该通过.htaccess来完成,而不是服务器范围的设置,因为可接受的IP列表非常长,我宁愿没有它膨胀我的Apacheconfiguration文件。 .htaccess文件 大部分内容是出于隐私原因编辑的,但是它遵循这个模板。 # initial deny <Limit GET POST> order deny,allow deny from all # SUBSCRIBER LIST #a very long list […]

使用Apache和mod_wsgi的HTTP 503错误

我在Django中编写了一个webapp,我使用mod_wsgi在Apache 2.4下运行。 乍一看,它工作正常。 但是,当Apache进程运行了一段时间后,webapp开始响应503错误。 在F5之后,你可以通过很多次。 令人讨厌的是我没有任何与我的Apache error.log相关的任何东西 ,所以我不知道从哪里开始debugging。 我唯一的领导是浏览器中显示的错误: 503 Service Unavailable 。 其他网站(PHP)不受影响。 重新启动Apache服务器可以立即解决问题。 我的这个webapp的Apacheconfiguration: WSGIDaemonProcess app python-path=/opt/app home=/opt/app WSGIProcessGroup app WSGIScriptAlias /app /opt/app/wsgi.py 我发现这个,但我不认为这是问题,因为套接字已经放在/var/run/apache2/在我的情况(不是“Apache日志目录”)。 这个目录对其他人是可读的。 套接字本身有模式700 ,但拥有正确的所有者( www-data )。 有任何想法吗? 编辑: 我注意到,当问题发生时,我重新启动Apache来修复它,Apache需要很长的时间才能退出。 在错误日志中,我发现这些消息: [Sun Jun 25 14:14:18.935566 2017] [core:warn] [pid 374:tid 140587055682752] AH00045: child process 21761 still did not exit, sending a SIGTERM […]

NGINX Websocket初始通信延迟

我创build了一个Django服务器,它使用Django通道进行websocket通信。 当我用NGINX运行服务器时,服务器和客户端之间的websocket通信有一个初始延迟。 在最初的延迟之后,所有丢失的数据在非常短的时间内到达,然后开始实时通信。 我已经testing了服务器的独立和没有NGINX代理只有一个达芙妮实例,并没有最初的通信延迟。 以下是我的NGINXconfiguration。 如果任何人有任何想法,为什么我会得到一个最初的10秒延迟websocket通信,将不胜感激。 worker_processes 1; events { worker_connections 1024; } http { map $http_upgrade $connection_upgrade { default upgrade; '' close; } include mime.types; default_type application/octet-stream; #log_format main '$remote_addr – $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 0; […]

Nginx代理传递给本地主机Gunicorn意外返回50x错误

我有一个非常基本的设置与nginx安装在运行在gunicorn服务器上的django应用程序。 gunicorn conf很简单,下面是: exec gunicorn myapp.wsgi:application \ –workers 5 –reload 我已经设置了nginx服务器,将默认服务器上的所有传入stream量proxy_pass设置为127.0.0.1:8000。 但是,当我到服务器的IP地址,我看到默认的nginx 404屏幕。 所以我假设stream量是由nginx服务器传递的代理,但不知何故没有正确路由,并没有回应,这迫使nginx返回404。我究竟是在这里做gunicorn或nginxconfiguration错误? 作为参考,下面是我的完整的nginx.conf文件: user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; […]

img 404使用Nginx,Docker,Django,Digital Ocean

出于某种原因,我的CSS,JS和Font-Awesome静态资产被识别并正常使用,但是我的img静态文件在Nginx Docker容器日志中显示了404错误。 当我在本地构build这些容器时,一切正常,但是一旦我在Digital Ocean上构build,img文件就开始向Nginx抛出404错误。 我一直在工作几天没有运气,任何帮助将非常感激。 这里是我的Nginx设置: server { listen 80; server_name 104.236.29.80; access_log /dev/stdout; error_log /dev/stdout info; location /static/ { alias /usr/src/app/personal/static/; } location / { proxy_pass http://web:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 这里是我的Nginx构build的Dockerfile: FROM tutum/nginx RUN rm /etc/nginx/sites-enabled/default ADD sites-enabled/ /etc/nginx/sites-enabled 我的Docker-compose文件看起来有点像这样: web: restart: always build: ./web expose: […]

Django应用程序的公共IP工作,但是当一个logging更新时`400错误的请求错误`

我有一个使用nginx和gunicorn在Ubuntu 16.04 EC2实例上部署的Django应用程序。 不幸的是,在我的公共IP成功部署之后,使用公共IP更新我的Alogging在我的域中产生了404 Bad Request错误 – 即使等了很长时间以确保DNS更改传播。 通过公共IP访问应用程序继续工作。 我确实联系了我的名字服务器主机,以确认我是否正确地设置了我的Alogging设置:他们说DNS更改成功了,但是没有帮助,因为它似乎是AWS的一个问题。 是否有一个特定的原因,为什么在我的Alogging中使用我的公共IP不能正常工作,并没有指向我的应用程序? 非常感谢任何能够帮助我成功将我的域名指向已部署的django项目的人员。 目前,通过公网IP访问应用程序仍然正常工作,Alogging似乎更新,但任何尝试加载域(不是直接IP),都会出现400错误请求错误。

Apache .htaccess和.htpasswd不要求在Django站点input密码

我有一个configuration了mod_wsgi的Django站点,使用Apache 2.4作为Web服务器。 虚拟主机: <VirtualHost *:80> ServerName site.com ServerAlias site.com ServerAdmin [email protected] DocumentRoot /var/www/site <Directory /> Options FollowSymLinks AllowOverride None </Directory> Alias /media/ /var/www/site/media Alias /static/ /var/www/site/static <Directory /var/www/site> Require all granted AllowOverride All </Directory> WSGIScriptAlias / /var/www/site/nep/wsgi.py ErrorLog /var/log/apache2/site/error.log CustomLog /var/log/apache2/site/access.log combined # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. […]

apacheconfiguration为cohosting mod_python和基于php的应用程序

我有django + python + apache2 + mod_python安装托pipe和工作在ubuntu服务器/ linode VPS。 php5是安装和configuration的。 我们没有example.com中的域名。 只是IP地址。 所以我的apache .conf文件看起来像这样 ServerAdmin webmaster @ localhost DocumentRoot / var / www <Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonOption django.root /mysite PythonPath "['/var/www/djangoprojects',] + sys.path" PythonDebug On </Location> 我想安装vtiger,所以如果我改变我的.conf文件就像这样说 <VirtualHost *:80> DocumentRoot /var/www/vtigercrm/ ErrorLog /var/log/apache2/vtiger.error_log CustomLog /var/log/apache2/vtiger.access_log combined <Directory /var/www/vtigercrm> Options […]

configuration默认的PYTHONPATH

我有Django应用程序和几个Django命令,我会通过CentOS 5上的cronjob执行。 最近我更新了我的python-setuptools软件包,它将更新python-devel软件包。 执行此更新之后,通过cronjob执行的Django命令的默认PYTHONPATH设置与我从shell执行的Django应用程序不同。 由于这种不匹配,我的旧Django cronjobs失败,因为所需的库不在path中。 我该如何解决这个问题,并确保cronjob Django命令和Django应用程序具有相同的环境?

启动所有的mod_wsgi进程

mod_wsgi进程似乎是懒惰地开始,即根据要求。 但是,我更喜欢从一开始就启动所有的stream程,因为stream程启动时间很长。 有没有这个configuration选项? 或绕过它? 以下是相关情况下的stream程configuration: WSGIDaemonProcess myapp user=user group=user processes=30 threads=1 WSGIProcessGroup myapp 注意:我在守护进程模式下运行多个进程,每个进程都有一个线程。 apache是​​用MPM worker编译的 谢谢