Articles of unix

Gunicornsockets消失

Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise gunicorn (version 19.1.1) nginx version: nginx/1.1.19 我的gunicorn conf: bind = ["unix:///tmp/someproj1.sock", "unix:///tmp/someproj2.sock"] pythonpath = "/home/deploy/someproj/someproj" workers = 5 worker_class = "eventlet" worker_connections = 25 timeout = 3600 graceful_timeout = 3600 昨天下午2点左右,我们开始在开发环境中获得502s。 这是在Nginx错误日志中: connect() to unix:///tmp/someproj1.sock failed (2: No such file or directory) while connecting […]

Nginx无法find与Unicorn的unix套接字文件

我已经检查了应用程序,并且一切接缝都没问题(代码configuration明智的应用程序),也是服务器,数据库都可以,在日志中我得到了这个错误,我已经看了这个Nginx无法find与Unicorn的Unix套接字文件(没有这样的文件或目录),但我真的不知道从哪里开始,以实现“只需修改你的Unicornconfiguration文件中的listenvariables。例如:listen”/var/sockets/unicorn.[app name] .sock“ ,然后configurationNginx代理服务器到服务器的所有连接,例如server unix:/ var / sockets / unicorn [app name] .sock fail_timeout = 0; 如果有人可以请指点我在如何做到这一点的方向,这将是伟大的。 我改变了文件,但卡住在相同的错误,miconfiguration文件(我已经删除部分文件confidenciality的原因): root = "" working_directory root pid "#{root}/tmp/pids/unicorn.pid" stderr_path "#{root}/log/unicorn.log" stdout_path "#{root}/log/unicorn.log" listen "/var/sockets/unicorn.camicase.sock" worker_processes 2 timeout 30 和ngixconfiguration upstream unicorn { server unix:/var/sockets/unicorn.camicase.sock fail_timeout=0; } server { listen 80; server_name _; rewrite ^ https://$host$request_uri? permanent; } server […]

Nginx的统计()失败(13:权限被拒绝)

好吧,以前有过这个post,但没有解决scheme修复我的问题。 我有站点configuration,这是只是直线上来,CSS和JS,我想添加一个WordPress的网站。 我的WordPress的网站的configuration如下。 ####################### server { listen 80; root /usr/share/nginx/threadtheatre/wordpress; index index.php; server_name threadtheatre.co.uk; access_log /var/log/nginx/thread.access.log; error_log /var/log/nginx/thread.error.log; location / { # try_files $uri $uri/ =404; try_files $uri $uri/ /index.php?q=$uri&$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info […]

cachingRails资产时出现NGinX权限问题

由于移动到一个新的服务器(和更新到Rails 3.0.1)我正在遇到我的服务器上的权限错误。 ActionView::Template::Error (Permission denied – /var/www/myapp/releases/20101106093931/public/stylesheets/.permissions_check.81834140.9998.761303): / var / www app被设置为CHMOD 755(recursion)。 当我尝试在我的样式表链接标记中设置:cache => true时发生错误: <%= stylesheet_link_tag %w{ reset application }, :cache => true %> 我想这是由Rails试图写在服务器上的all.css文件,并没有足够的权限,但现在一切都应该作为根运行? 有谁可以提出任何build议,如何解决这个问题? 服务器使用Passenger 3.0.0和Rails 3.0.1运行NGinX

Nginx连接()到unix:/var/run/fcgiwrap.socket失败

我正在尝试在我的Nginx服务器上安装Gitweb。 一切似乎configuration正确,但我似乎在gitweb.log中得到以下错误: `2015/06/08 08:42:05 [crit] 29135#0: *5 connect() to unix:/var/run/fcgiwrap.socket failed (13: Permission denied) while connecting to upstream, client: 83.36.85.6, server: git.mydomain.co.uk, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "git.mydomain.co.uk"` 我已经检查了所有者/权限,似乎都没有问题。 srwxr-xr-x 1 www-data www-data 0 Jun 8 08:44 /var/run/fcgiwrap.socket ps aux | grep nginx的输出 ps aux | grep nginx是: root 30283 0.0 0.0 90552 […]

PHP无法打开stream:打开的文件太多

我有一个错误的问题:PHP无法打开stream:打开的文件太多。 我已经看到了各种答案在这里stackoverflow,但我无法解决这个问题。 我主要试图增加最大限制。 打开文件: 我编辑了/etc/security/limits.conf,我指定了这个: * soft nofile 10000 * hard nofile 30000 在保存并注销/重新启动框后,命令: ulimit -n 仍然打印出1024.我不知道为什么这不起作用,我认为这是我得到PHP错误的原因。 如果需要,我可以粘贴整个文件或任何其他configuration文件。 我使用PHP 5.6,nginx 1.8.0和php-fpm。 现在为我工作的解决scheme是手动重新启动nginx: service nginx restart 之后这个东西再次工作。 主要发生在运行unit testing,testing或者向Web服务器发出大量请求时出现的问题。

Nginx如何升级而不会丢失任何请求?

根据Nginx的文档 : 如果您需要用新的nginx二进制文件(升级到新版本或添加/删除服务器模块)replacenginx二进制文件,则可以在没有任何服务停机的情况下执行 – 不会有传入的请求丢失。 我的同事和我试图弄清楚: 这是如何工作的? 。 我们知道(我们认为): 一次只能有一个进程在端口80上进行监听 Nginx创build一个套接字并将其连接到端口80 父进程及其任何subprocess都可以绑定到同一个套接字,这就是Nginx可以让多个工作subprocess响应请求 我们也对Nginx做了一些实验,像这样: 发送kill -USR2到当前主进程 反复运行ps -ef | grep unicorn ps -ef | grep unicorn看到任何独angular兽进程,与他们自己的pid和他们的父母pid 注意到新的主进程首先是旧主进程的一个subprocess,但是当旧的主进程退出时,新进程进程的ppid为1。 所以很显然,新的主进程在运行时可以像旧进程一样监听同一个进程,因为当时新主进程是老主进程的一个subprocess。 但不知何故,新的主进程可以成为…呃…没有人的孩子? 我认为这是标准的Unix的东西,但我的过程和端口和套接字的理解是相当模糊的 。 有人可以更详细地解释这一点吗? 我们的假设是否有错? 有没有一本我可以阅读的书来真正理解这些东西?

什么是gunicorn.sock?

我是一个新手,遵循Michal Karzynski的gunicorn–django教程。 我在Ubuntu 14上使用Django 1.7.4,我的gunicorn脚本的设置如下 #!/bin/bash NAME="mytestapp" # Name of the application DJANGODIR=/var/www/testapp/src # Django project directory SOCKFILE=/var/www/testapp/run/gunicorn.sock # we will communicte using this unix socket USER=ubuntu # the user to run as GROUP=ubuntu # the group to run as NUM_WORKERS=3 # how many worker processes should Gunicorn spawn DJANGO_SETTINGS_MODULE=testapp.settings # which settings file should […]

如何find“我的”lib目录?

我正在Linux下开发一个C ++程序。 我想把一些东西(具体来说,LLVM位码文件,但这不是重要的)在库中,所以我想要以下目录结构: /somewhere/bin/myBin /somewhere/lib/myLib.bc 我如何findlib目录? 我试图计算argv[0]的相对部分,但是如果/somewhere我的PATH位于我的PATH , argv[0]将只包含myBin 。 有什么方法可以得到这条路? 或者我必须在编译时设置它? GNU自动工具如何处理这个? 如果我将–prefix选项提供给./configure会发生什么情况? 编辑:在我的情况下,词库是有点误导。 我的库包含LLVM位码,所以它不是一个实际的(共享的)对象文件,只是我想从我的程序打开的一个文件。 您可以将其视为图像或文本文件。

linux makefile链接错误__line__

我得到以下错误在Linux“未定义的引用__line__ 。我知道C有隐含的macros__LINE__ 。在代码__line__分配__LINE__为 extern int __line__; LDF(__line__ = __LINE__); 所以__line__是一个variables不是macros,在这里被赋值为__LINE__ 。 这里是extern int ,所以它应该被声明为int __line__ 。 但是我没有看到任何标题或c文件_line _is声明。 此外,这个错误不是在编译.c文件时,而是在链接.o文件的时候。 这个错误不是在UNIX中。 另外,在链接libgen时,libposix4库也是链接的。 这些库只在UNIX中不在LINUX中,我假设int __line__; 存在于这些库中的某个地方,或者我该如何解决这个错误?