有两种运行PHP-FPM的方法.我不知道它在科技方面没有防弹,但这两种方法的优点和缺点是什么?
我看到Java的这些线程UNIX套接字实现?和http://forums.sun.com/thread.jspa?threadID=713266.
第二个链接说Java已经支持UNIX Domain Socket.如果那是真的我需要从Java实现什么类?
从第一个链接开始,它表示Java不支持UNIX Domain Socket.如果需要UNIX域套接字,则必须使用第三方库.
那么,这是什么?
我有一个带有目录结构的简单项目
我正在为我的drupal站点设置nginx配置,并且对于fastcgi_pass我一直在使用127.0.0.1:9000但是我想使用这个conf中建议的unix套接字:
# PHP 7 socket location.
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
Run Code Online (Sandbox Code Playgroud)
但我找不到 php/php7.0-fpm.sock;
我的centos发行版中有以下路径
/var/run/php-fpm/php-fpm.pid
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用云函数中的 SQLAlchemy 连接到我的云 SQL 数据库,但我似乎无法计算出正确的连接字符串。
DATABASE_URL=postgres://$DB_USER:$_DB_PWD@/$DB_NAME?unix_socket=/cloudsql/$DB_INSTANCE
Run Code Online (Sandbox Code Playgroud)
这给了我错误:
pyscopg2.ProgrammingError: invalid dns: invalid connection option "unix_socket"
Run Code Online (Sandbox Code Playgroud)
通过 unix socket 连接到 Postgresql 9.6 DB 的正确方法是什么pyscopg2?
postgresql sqlalchemy unix-socket google-cloud-sql google-cloud-functions
我正在尝试从Ruby中的UNIX套接字进行连接,读取和写入.它是haproxy使用的stats套接字.
我的代码如下:
require 'socket'
socket = UNIXSocket.new("/tmp/haproxy.stats.socket")
# First attempt: works
socket.puts("show stat")
while(line = socket.gets) do
puts line
end
# Second attemp: fails
socket.puts("show stat")
while(line = socket.gets) do
puts line
end
Run Code Online (Sandbox Code Playgroud)
它第一次成功,但在第二次尝试失败.我不知道为什么.
# pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,
stats,FRONTEND,,,0,0,2000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,1,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,
stats,BACKEND,0,0,0,0,2000,0,0,0,0,0,,0,0,0,0,UP,0,0,0,,0,22,0,,1,1,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,
legacy_socket,FRONTEND,,,0,0,1000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,
all,FRONTEND,,,0,0,10000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,3,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,1,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,2,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,3,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,4,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,5,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,6,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,7,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,21,21,,1,4,8,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,21,21,,1,4,9,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,21,21,,1,4,10,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,BACKEND,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,DOWN,0,0,0,,1,21,21,,1,4,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,
api_backend,api,0,0,0,0,200,0,0,0,,0,,0,0,0,0,UP,1,1,0,0,0,22,0,,1,5,1,,0,,2,0,,0,L4OK,,0,0,0,0,0,0,0,0,,,,0,0,
api_backend,api,0,0,0,0,1,0,0,0,,0,,0,0,0,0,UP,1,1,0,0,0,22,0,,1,5,2,,0,,2,0,,0,L4OK,,0,0,0,0,0,0,0,0,,,,0,0,
api_backend,api,0,0,0,0,1,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,21,21,,1,5,3,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
api_backend,BACKEND,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,UP,2,2,0,,0,22,0,,1,5,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,
www_backend,ruby-www,0,0,0,0,10000,0,0,0,,0,,0,0,0,0,UP,1,1,0,0,0,22,0,,1,6,1,,0,,2,0,,0,L4OK,,0,0,0,0,0,0,0,0,,,,0,0,
www_backend,BACKEND,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,UP,1,1,0,,0,22,0,,1,6,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,
/Users/Olly/Desktop/haproxy_stats.rb:14:in `write': Broken pipe (Errno::EPIPE)
from /Users/Olly/Desktop/haproxy_stats.rb:14:in `puts'
from /Users/Olly/Desktop/haproxy_stats.rb:14
Run Code Online (Sandbox Code Playgroud)
问题是什么?有没有很好的参考使用UNIX套接字和Ruby?
我需要使用node.js实时读出正在写入文件的数据的最佳方法.麻烦的是,Node是一艘快速发展的船,它使寻找解决问题的最佳方法变得困难.
我想做什么
我有一个正在做某事的java进程,然后把它做的事情的结果写到文本文件中.它通常需要5分钟到5个小时才能运行,数据写入的时间很长,并且可以达到一些相当高的吞吐率(大约1000线/秒).
我想实时读取这个文件,然后使用节点聚合数据并将其写入套接字,在套接字上可以在客户端上绘制图形.
客户端,图形,套接字和聚合逻辑都已完成,但我对阅读文件的最佳方法感到困惑.
我尝试过(或者至少玩过)
FIFO - 我可以告诉我的Java进程写一个fifo并使用node读取它,这实际上是我们如何使用Perl实现这个目的,但是因为其他一切都在节点中运行将代码移植过来是有意义的.
Unix Sockets - 如上.
fs.watchFile - 这会对我们需要的东西起作用吗?
fs.createReadStream - 这比watchFile好吗?
fs&tail -f- 似乎是一个黑客.
实际上,我的问题是什么,
我倾向于使用Unix套接字,这似乎是最快的选择.但节点是否具有更好的内置功能,可以实时读取fs中的文件?
创建unix套接字时,man 7 unix允许路径名()最多为108个字符.对于朋友来说,这导致了他的节目中的一个错误,因为他的路径更长.现在我们想知道这个数字是如何确定的.
我怀疑这个数字是确定的,因此sizeof该结构sockaddr_un与其他sockaddresses的大小相比是明确的sockaddr_in.但如果他们想避免与其他sizeof值发生冲突,为什么不使用素数呢?有人可以为此提供一个授权来源吗?
我有一个正在侦听Unix域套接字的程序.
当客户端连接到套接字时,我想找出连接的程序,然后决定是否允许连接(基于用户/组设置).
这可能在Linux下,如果是这样,怎么样?
我正在尝试与之交互supervisord,我想通过unix socket(它是一个共享的托管环境)与它交谈.
到目前为止我尝试过的是:
import xmlrpclib
server = xmlrpclib.ServerProxy('unix:///path/to/supervisor.sock/RPC2')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/xmlrpclib.py", line 1549, in __init__
raise IOError, "unsupported XML-RPC protocol"
IOError: unsupported XML-RPC protocol
Run Code Online (Sandbox Code Playgroud)
/path/to/supervisor.sock肯定存在.使用'unix:///path/to/supervisor.sock/RPC2'形式的URI supervisord,这是我的想法.文档不讨论unix套接字:http://docs.python.org/library/xmlrpclib.html.
这可能吗?我应该使用不同的库吗?
使用Python读取Unix域套接字文件类似于普通的TCP套接字:
>>> import socket
>>> import sys
>>>
>>> server_address = '/tmp/tbsocket1' # Analogous to TCP (address, port) pair
>>> sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
>>> sock.connect(server_address)
>>> sock.recv(512)
'*** uWSGI Python tracebacker output ***\n\n'
Run Code Online (Sandbox Code Playgroud)
由于UDS不是普通文件,因此cat不适用于它们:
$ sudo cat /tmp/tbsocket1
cat: /tmp/tbsocket1: No such device or address
Run Code Online (Sandbox Code Playgroud)
也没有curl:
$ sudo curl /tmp/tbsocket1
curl: (3) <url> malformed
Run Code Online (Sandbox Code Playgroud)
如何使用标准命令行工具(如curl)读取或写入Unix域套接字?
PS:在一个奇怪的巧合,一个卷曲补丁建议最近)
unix-socket ×10
linux ×3
sockets ×3
php ×2
c ×1
curl ×1
fifo ×1
java ×1
javascript ×1
nginx ×1
node.js ×1
postgresql ×1
python ×1
real-time ×1
ruby ×1
sqlalchemy ×1
tcp ×1
unix ×1
xml-rpc ×1
xmlrpclib ×1