当前位置: 首页 > 面试题库 >

nginx.service:无法从文件/run/nginx.pid读取PID:无效参数

从智明
2023-03-14
问题内容

我正在通过https://www.digitalocean.com/community/tutorials/how-to-serv-django-
applications-with-uwsgi-and-nginx-on-
ubuntu-16-04进行

工作。我已经完成测试,但出现502错误。

我的nginx服务器块配置文件:

server {
listen 80;
server_name 198..xxx.xxx.xxx mysite.org;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
    root /home/deploy/mysite3;
}

location / {
    include         uwsgi_params;
    uwsgi_pass      unix:/run/uwsgi/mysite3.sock;
}
}

deploy@server:/etc/nginx/sites-enabled$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2017-02-06 17:30:53 EST; 4s ago
  Process: 7374 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 7383 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 7380 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 7384 (nginx)
   CGroup: /system.slice/nginx.service
           ├─7384 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           └─7385 nginx: worker process

Feb 06 17:30:53 server systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 06 17:30:53 server systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
Feb 06 17:30:53 server systemd[1]: Started A high performance web server and a reverse proxy server.

nginx错误日志显示:

2017/02/06 21:10:32 [error] 7385#7385: *15 upstream prematurely closed connection while reading response header from upstream, client: 64.xxx.xxx.xxx, server: 198.xxx.xxx.xxx, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/run/uwsgi/mysite3.sock:", host: "mysite.org"

在我看来,uwsgi运行正常:

Feb 06 17:43:42 server uwsgi[7434]: WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0xc7ac10 pid: 7435 (default app)
Feb 06 17:43:42 server uwsgi[7434]: *** uWSGI is running in multiple interpreter mode ***
Feb 06 17:43:42 server uwsgi[7434]: spawned uWSGI master process (pid: 7435)
Feb 06 17:43:42 server uwsgi[7434]: Mon Feb  6 17:43:42 2017 - [emperor] vassal mysite3.ini has been spawned
Feb 06 17:43:42 server uwsgi[7434]: spawned uWSGI worker 1 (pid: 7439, cores: 1)
Feb 06 17:43:42 server uwsgi[7434]: spawned uWSGI worker 2 (pid: 7440, cores: 1)
Feb 06 17:43:42 server uwsgi[7434]: spawned uWSGI worker 3 (pid: 7441, cores: 1)
Feb 06 17:43:42 server uwsgi[7434]: spawned uWSGI worker 4 (pid: 7442, cores: 1)
Feb 06 17:43:42 server uwsgi[7434]: spawned uWSGI worker 5 (pid: 7443, cores: 1)
Feb 06 17:43:42 server uwsgi[7434]: Mon Feb  6 17:43:42 2017 - [emperor] vassal mysite3.ini is ready to accept requests

我怎样才能解决这个问题?

编辑:

root@server:~# mkdir /etc/systemd/system/nginx.service.d
root@server:~# printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf
root@server:~# systemctl daemon-reload
root@server:~# systemctl restart nginx
root@server:~# systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
  Drop-In: /etc/systemd/system/nginx.service.d
           └─override.conf
   Active: active (running) since Tue 2017-02-07 08:18:26 EST; 6s ago
  Process: 10076 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5
  Process: 10084 ExecStartPost=/bin/sleep 0.1 (code=exited, status=0/SUCCESS)
  Process: 10082 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (cod
  Process: 10079 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process
 Main PID: 10083 (nginx)
   CGroup: /system.slice/nginx.service
           ├─10083 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─10085 nginx: worker process

Feb 07 08:18:26 server systemd[1]: Starting A high performance web server and a
Feb 07 08:18:26 server systemd[1]: Started A high performance web server and a r
root@server:~#

问题答案:

用nginx.pid文件发出的警告是一个已知错误(至少对于Ubutnu而言,如果不是对其他发行版也是如此)。此处有更多详细信息:https
:
//bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864

解决方法(在ssh控制台上,以root用户身份,使用下面的命令):

mkdir /etc/systemd/system/nginx.service.d
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf
systemctl daemon-reload
systemctl restart nginx

然后检查您是否仍然看到该nginx.pid错误,以及nginx是否正在实际运行,以及是否可以连接到服务器上的端口80。

我还将检查它是否确实存在以及对其的权限:

/run/uwsgi/mysite3.sock

如果nginx正在运行并且uWSGI也正在运行,那么我想这是一个配置问题

我了解您要使用Django,因此建议您查看您的实际配置,并将其与此处的配置进行比较:

http://uwsgi-
docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html

希望对您有所帮助!



 类似资料:
  • 你能告诉我是什么导致了这个问题以及如何解决它吗?谢了。 详细响应消息:

  • 我正在尝试从com包中的CSV文件中读取值。实例但当我使用以下语法运行代码时: 上面写着: java.io.FileNotFoundException: Dataset.csv 我也尝试过使用: 仍然不工作。任何帮助都会很有帮助。谢谢

  • 问题内容: 我在做一些真正愚蠢的事情时遇到了一个大问题。也就是说,打开流到我的META-INF文件夹中的资源文件。我正在使用jar工具并执行以下操作: 我只是一个空!该项目是使用maven构建的,xsd文件最终位于META-INF文件夹中,但仍然无法使用。 我不理解的是背后的理论?ClassLoader如何在文件系统中执行查找?如何获得文件? 问题答案: 尝试删除第一个斜杠: 如果要在对象上调用方

  • 我正在运行此命令以从普通群集(未安装hadoop)中读取 Azure 数据砖中的数据。 我得到了这个错误 你能建议我需要安装什么样的jar来让它工作吗

  • 问题内容: 我想读取.bak文件,这些文件是ms sql数据库的备份文件。现在,我正在研究如何使用Sql Mngmnt studio读取这些文件。请帮帮我。谢谢 问题答案: 您可以使用SQL Management Studio将.BAK文件还原到临时数据库并读取它们! 这里的一些指针

  • 我有一个3节点的Apache Ignite集群,我创建了一个以整数为键的缓存,以'subscriber'POJO为值,当我从JAVA程序内部连接到集群并访问缓存时,我得到了上面提到的异常,我有'peerClassLoading'属性设置为false,并且我在所有节点中部署了'subscriber'POJO二进制文件,请在下面找到完整的堆栈跟踪。我错过了什么?当我在JAVA程序中用启动客户端时,它为