有關此主題的問題很多,但沒有一個對我有幫助。我正在嘗試將Gunicorn連接到其中,/tmp/gunicorn.sock但我繼續前進operation not permitted。我的gunicorn.conf.py樣子是:import multiprocessing# bind = '127.0.0.1:5000'bind = 'unix:/tmp/gunicorn.sock'backlog = 2048preload_app = Truemax_requests = 2048max_requests_jitter = 128workers = multiprocessing.cpu_count() * 2 + 1worker_connections = 1000timeout = 60keepalive = 2errorlog = '-'loglevel = 'debug'accesslog = '-'access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"'def when_ready(server): open('/tmp/app-initialized', 'w').close()和我的日志是:[2018-08-03 02:34:40 +0000] [116] [INFO] Starting gunicorn 19.9.0[2018-08-03 02:34:40 +0000] [116] [DEBUG] connection to /tmp/gunicorn.sock failed: [Errno 1] Operation not permitted[2018-08-03 02:34:40 +0000] [116] [ERROR] Retrying in 1 second.[2018-08-03 02:34:41 +0000] [116] [DEBUG] connection to /tmp/gunicorn.sock failed: [Errno 1] Operation not permitted[2018-08-03 02:34:41 +0000] [116] [ERROR] Retrying in 1 second.[2018-08-03 02:34:42 +0000] [116] [DEBUG] connection to /tmp/gunicorn.sock failed: [Errno 1] Operation not permitted[2018-08-03 02:34:42 +0000] [116] [ERROR] Retrying in 1 second.[2018-08-03 02:34:43 +0000] [116] [DEBUG] connection to /tmp/gunicorn.sock failed: [Errno 1] Operation not permitted[2018-08-03 02:34:43 +0000] [116] [ERROR] Retrying in 1 second.[2018-08-03 02:34:44 +0000] [116] [DEBUG] connection to /tmp/gunicorn.sock failed: [Errno 1] Operation not permitted[2018-08-03 02:34:44 +0000] [116] [ERROR] Retrying in 1 second.[2018-08-03 02:34:45 +0000] [116] [ERROR] Can't connect to /tmp/gunicorn.sock對于用戶來說,這看起來像是權限錯誤,但這應該不是問題,因為gunicorn它以root/opt/app # ps aux | grep gunicorn 123 root 0:00 grep gunicorn我也嘗試過創建一個用戶和一個組,addgroup -S appgroup && adduser -S appuser -G appgroup并/tmp/通過這樣做來更改文件夾的權限chown appuser:appgroup /tmp/(因為gunicorn.sock未創建文件)。操作系統中的內容正在按原樣執行root,但仍然出現此錯誤。如何使通過gunicorn.sock文件運行它成為可能?
1 回答

Helenr
TA貢獻1780條經驗 獲得超4個贊
感謝https://github.com/benoitc/gunicorn/issues/1849上的人員。
為了即時創建套接字,您可能必須將它們放入,/run/
即bind='unix:/run/gunicron.sock'
可以使用Nginx作為反向代理并通過給定的sock文件提供服務。
但是為什么/run/
呢?
根據維基百科
運行時變量數據:有關自上次引導以來正在運行的系統的信息,例如當前登錄的用戶和正在運行的守護程序。在啟動過程開始時,必須刪除或截斷該目錄下的文件;但是在提供此目錄作為臨時文件系統(tmpfs)的系統上,這不是必需的。
有關更多信息,請參見https://unix.stackexchange.com/questions/13972/what-is-this-new-run-filesystem。
添加回答
舉報
0/150
提交
取消