- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如果我正常运行 uwsgi(非 emperor 模式),nginx 可以完美运行。
如果我在 emperor 模式下配置 uwsgi,我会遇到各种我无法解决的错误。
这是我的 nginx.conf 文件:
worker_processes 1;
worker_rlimit_nofile 8192;
events {
worker_connections 8192;
#multi_accept on; # does not matter if I use multi-accept
use epoll; # or epoll, same errors
}
http {
large_client_header_buffers 2 1k;
client_body_buffer_size 10k;
client_header_buffer_size 1k;
client_max_body_size 8m;
request_pool_size 32k;
connection_pool_size 256;
ignore_invalid_headers on;
sendfile on;
tcp_nopush on;
server_names_hash_bucket_size 128;
keepalive_timeout 90;
gzip on;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 500;
gzip_disable "MSIE [1-6]\.";
gzip_types text/plain text/xml text/css
text/comma-separated-values
text/javascript
application/x-javascript
application/atom+xml;
# Configuration for Nginx
server {
# Running port
listen 80;
listen 127.0.0.1:27070;
server_name 127.0.0.1 myserver_name.com;
charset utf-8;
access_log /log/nginx_access.log;
error_log /log/nginx_error.log;
# Proxying connections to application servers
location /myapplication/ {
include uwsgi_params;
uwsgi_buffering off;
uwsgi_param SCRIPT_NAME /myapplication;
uwsgi_modifier1 30;
uwsgi_pass 127.0.0.1:27070;
proxy_pass http://127.0.0.1:27070;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-host $server_name;
} # end mysite
} # end server
} # end http
vassals-default.ini 文件:
[uwsgi]
log-date = true
emperor=/etc/uwsgi
emperor-use-clone = fs,net,ipc,pid,uts
emperor-tyrant = true
vassals-include = /opt/uwsgi/vassals-default.ini
master = true
cap = setgid, setuid
vassal-set = processes=8
vassal-set = enable-metrics=1
vassal_name = %n
socket = /tmp/sockets/%n.sock
chmod-socket = 770
logto = /opt/uwsgi/%n.log
我的应用程序.ini 文件:
[uwsgi]
domain = myserver_name.com
app-name = myapplication
uid = myapplication
gid = myapplication
socket=/tmp/sockets/myapplication.sock
chdir = /opt/myapplication/myapp
virtualenv = /opt/myapplication/webapp-20150203/
module = WSGI:app
callable = app
processes = 2
buffer-size=32768
http-buffer-size=32768
daemonize = /opt/uwsgi/myapplication.log
pidfile = /opt/uwsgi/myapplication.pid
logto = /opt/uwsgi/uwsgi.log
debug = true
disable-logging = false
thunder-lock = true
enable-threads = true
harakiri = 30
套接字文件:
[root@npi uwsgi]# ls -l /tmp/sockets
srwsrws--- 1 sadlesum sadlesum 0 Jul 16 13:48 myapplication.sock
srwxrwx--- 1 root root 0 Jul 16 13:48 vassals-default.sock
日志文件看起来不错:
我的应用程序日志:
Thu Jul 16 13:48:25 2015 - *** starting uWSGI sub-Emperor ***
Thu Jul 16 13:48:25 2015 - announcing my loyalty to the Emperor...
Thu Jul 16 13:48:25 2015 - uwsgi socket 0 bound to UNIX address /tmp/sockets/myapplication.sock fd 3
Thu Jul 16 13:48:25 2015 - uwsgi socket 1 bound to UNIX address /tmp/sockets/vassals-default.sock fd 4
Thu Jul 16 13:48:25 2015 - Python version: 2.7.6 (default, Jan 11 2014, 21:49:01) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]
Thu Jul 16 13:48:25 2015 - Set PythonHome to /opt/myapplication/webapp-20150203/
Thu Jul 16 13:48:25 2015 - Python main interpreter initialized at 0x10f7470
Thu Jul 16 13:48:25 2015 - python threads support enabled
Thu Jul 16 13:48:25 2015 - your server socket listen backlog is limited to 100 connections
Thu Jul 16 13:48:25 2015 - your mercy for graceful operations on workers is 60 seconds
Thu Jul 16 13:48:25 2015 - mapped 304320 bytes (297 KB) for 2 cores
Thu Jul 16 13:48:25 2015 - *** Operational MODE: preforking ***
Thu Jul 16 13:48:29 2015 - WSGI app 0 (mountpoint='') ready in 4 seconds on interpreter 0x10f7470 pid: 26688 (default app)
Thu Jul 16 13:48:29 2015 - *** uWSGI is running in multiple interpreter mode ***
Thu Jul 16 13:48:29 2015 - spawned uWSGI master process (pid: 26688)
Thu Jul 16 13:48:29 2015 - spawned uWSGI worker 1 (pid: 26703, cores: 1)
Thu Jul 16 13:48:29 2015 - spawned uWSGI worker 2 (pid: 26704, cores: 1)
以皇帝模式启动uwsgi:
uwsgi --emperor/opt/uwsgi --vassals-include/opt/uwsgi/vassals-default.ini --master --die-on-term
*** starting uWSGI Emperor ***
Python version: 2.7.6 (default, Jan 11 2014, 21:49:01) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]
*** has_emperor mode detected (fd: 6) ***
[uWSGI] getting INI configuration from saddlesum.ini
[uWSGI] getting INI configuration from /opt/uwsgi/vassals-default.ini
*** has_emperor mode detected (fd: 7) ***
[uWSGI] getting INI configuration from vassals-default.ini
[uWSGI] getting INI configuration from /opt/uwsgi/vassals-default.ini
Thu Jul 16 13:48:25 2015 - [emperor] vassal myapplication.ini is now loyal
Thu Jul 16 13:48:25 2015 - [emperor] vassal vassals-default.ini is now loyal
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0xb16870
your mercy for graceful operations on workers is 60 seconds
*** Operational MODE: no-workers ***
spawned uWSGI master process (pid: 26686)
Thu Jul 16 13:48:25 2015 - [emperor] vassal vassals-default.ini has been spawned
Thu Jul 16 13:48:25 2015 - [emperor] vassal vassals-default.ini is ready to accept requests
Thu Jul 16 13:48:29 2015 - [emperor] vassal myapplication.ini has been spawned
Thu Jul 16 13:48:29 2015 - [emperor] vassal myapplication.ini is ready to accept requests
当我尝试在 firefox(或 Chrome)中访问我的 webapp 时,出现以下错误:
如果我的 nginx.conf 文件中有这一行:
proxy_pass http://127.0.0.1:27070;
当 nginx.conf 文件中存在上述 proxy_pass 行时错误 400 错误请求:
在 nginx.conf 文件中注释掉上面的 proxy_pass 行时出现错误 502 bad gateway:
此外,当出现 502 bad gateway 错误时,我还在我的 nginx_error.log 文件中看到了这一点:
2015/07/16 14:10:18 [error] 28289#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: 127.0.0.1, request: "GET /myapplication/ HTTP/1.1", upstream: "uwsgi://127.0.0.1:27070", host: "myserver_name.com", referrer: "http://myserver_name.com/"
最佳答案
尝试像这样在 setting.py 中将本地主机或您的 ip/域添加到 ALLOWED_HOSTS
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'your.server.ip.here']
同时删除这些:
监听 127.0.0.1:27070;
uwsgi_pass 127.0.0.1:27070;
proxy_pass http://127.0.0.1:27070 ;
并让 nginx 使用 unix socket 而不是在你的 ini 文件中
socket=/tmp/sockets/myapplication.sock
关于http - 运行 uwsgi emperor 模式给出 nginx 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31461770/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!