启动nginx报错问题

为了解决生产环境的bug,模拟生产环境,我使用了nginx,在安装启动的过程中,出现了很多问题。

1、nginx下载地址

  http://nginx.org/en/download.html 这是nginx的下载地址,下载稳定版

2、安装

  解压压缩包后,将解压后文件放到没有中文路径的目录下(若有中文,则报错log显示No mapping for the Unicode character exists in the target multi-byte code page)

3、启动

  可以双击nginx.exe启动,或者通过命令行进入对应路径,使用start nginx命令启动。启动成功后,在logs文件夹下,会多出一个nginx.pid的文件,在任务管理器中也会出现nginx.exe进程(可能会有多个)。

  在这一步,启动的时候出现了报错,查询错误日志,显示bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)。查询官网后,发现引起该报错的,有三种可能。

  1)防火墙开启;

  2)端口被占用;

  3)尝试修改端口;

  我的本地防火墙没开,而且也没有修改过端口,因此直接定位为第二个原因。

  通过命令行netstat -aon|findstr "80",查看端口被哪个进程占用。然后根据对应的pid进行再次查询,tasklist | findstr "pid号",查询具体的进程名称。如果查询的结果,进程并不重要,可以直接打开任务管理器关闭该进程,再重新启动nginx,就会正常。但是,我查询的结果为一个系统进程,不能通过任务管理器关闭,因此,我们需要更改注册表,是端口不再被占用,然后重启电脑。

  在搜索框输入regedit,进入注册表编辑器,然后找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP路径,找到里边的start(一个reg_dword文件),将数值由3改为0,保存修改后,重启电脑,使修改生效。

  重启后,再次启动nginx.exe,启动就能成功了。

4、关闭

  可以通过使用命令行进入对应路径,然后使用nginx.exe -s stop来结束进程,但是这个命令可能不会保留相关信息。

  推荐使用nginx.exe -s quit来结束进程,可以保留完整的相关信息。

原文地址:https://www.cnblogs.com/xuheheda/p/10690188.html

时间: 2024-11-12 11:46:31

启动nginx报错问题的相关文章

用低级别账户启动nginx报错的原因

nginx: [emerg] bind() to 0.0.0.0:80 failed (13: permission denied) 出现这种情况是因为 低于1024的端口号必须由root账户来启动进程并绑定端口,换成root账号启动nginx即可,反正nginx.conf里面是可以写user  www www; 来指定运行nginx的用户和用户组.

windows平台在tomcat中启动cas报错解决

windows平台在tomcat中启动cas报错: Caused by: java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path, 系统找不到指定的路径.] 解决办法:将jansi.dll文件放到C:\Windows\System32目录下即可. 注意:jansi.dll文件在使用gradle编译打包cas时会下载到C:\Users\${用户名}\.gradle

436启动cman报错

rhel6.2启动cman报错 Waiting for quorum... Timed-out waiting for cluster 解决方法: 修改/etc/init.d/cman配置文件 vim /etc/init.d/cman CMAN_QUORUM_TIMEOUT=45 改为 CMAN_QUORUM_TIMEOUT=0 然后重启cman即可

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with 摘要 Linux系统下安装完MySQL,启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with... Linux系统下装完MySQL,然后重启动时报错: 解决方法:  查看cat /etc/h

启动Myeclipse报错“Failed to create the Java Virtual Machine”的解决办法

我安装的是Myeclipse 10.7.1.装上好久没用,今天启动突然报错:Failed to create the Java Virtual Machine. 检查Myeclipse安装好使用时好的啊,近期也没用,可能是近期升级了本地单独安装的jre版本导致的吧(Myeclipse使用自己的jre的). 整理了如下2个解决办法,可以选择一个使用,我选择的是第2个.经测试都ok. 方法一: 找到Myeclpise路径下的myeclipse.ini文件: 编辑将Xmx(JVM Heap最大允许的尺

ceph升级到10.2.3 版本启动服务报错:Unknown lvalue 'TasksMax' in section 'Service'

#### ceph软件包升级完成,执行命令重启服务 sudo systemctl restart [email protected]"$HOSTNAME" #### 故障现象 服务可以启动,启动后显示有报错信息: Nov 23 17:14:45 ceph-6-12 systemd[1]:        [/usr/lib/systemd/system/[email protected]:18] Unknown lvalue 'TasksMax' in section 'Service'

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with 摘要 Linux系统下安装完MySQL,启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with... Linux系统下装完MySQL,然后重新启动动时报错: 解决方法:  查看cat /etc

启动httpd报错-已解决

[[email protected] ~]# service httpd startStarting httpd: (13)Permission denied: make_sock: could not bind to address 192.168.1.153:28080no listening sockets available, shutting downUnable to open logs [FAILED][[email protected] ~]# 临时办法: [[email pro

<<< tomcat启动是报错StandardServer.await: create[8005]

启动tomcat的时候出现异常 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 严重: StandardServer.await: create[8005]: java.net.BindException: Address already in use: JVM_Bind         at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(Plai