妈的。nginx访问不了。。。就是浏览器打开看不到nginx的标准界面。

我的是centos 7.6


解决:

1.前提:root权限

linux nginx配置端口未启用 nginx 启动端口_nginx

2.  检查防火墙 并centos 7对外开启80端口:

查看状态:systemctl status firewalld
开启防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
重启防火墙:systemctl restart firewall.service
重新载入防火墙:firewall-cmd --reload
开启状态开放端口:firewall-cmd --permanent --zone=public --add-port=80/tcp


 –zone #作用域

  –add-port=80/tcp #添加端口,格式为:端口/通讯协议

  –permanent #永久生效,没有此参数重启后失效

先查看防火墙是否开启的状态,以及开放端口的情况:

systemctl status firewalld.service
sudo firewall-cmd --list-all

会得到如下类似的输出:

services: dhcpv6-client ssh 表示 ssh 服务是放行的,而 ports: 这里为空,表示无端口号放行。

然后应该开发端口,比如nginx需要开放80端口:

firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=80/tcp --permanent

--permanent表示用久有效,不加这句的话重启后刚才开放的端口就又失效了

 

重启防火墙,并再次查看端口的开放情况:

firewall-cmd --reload
firewall-cmd --list-all

linux nginx配置端口未启用 nginx 启动端口_linux nginx配置端口未启用_02

 services: 里出现了 http 服务,ports:里也出现了 80 端口。

3.查看进程和80端口占用情况

ps -ef | grep nginx (如果能看到两个相邻ID的进程,说明启动成功)
 netstat -ano | grep 80

如果你没有看到1个进程或者没有2个nginx进程,则看看nginx服务的启动:

netstat -luntp|grep nginx

ps|grep grep nginx

然后检查下nginx配置是否正确并重载:

验证配置:nginx -tc /etc/nginx/nginx.conf

重载配置: nginx -s reload -c /etc/nginx/nginx.conf

划重点了!!!!

我就是因为配置验证成功,但是重载配置的时候报错!:

报错内容如下:

job for openfire . service failed because a configured resource limit was exceeded

然后在stackoverflow上找到了帖子:

linux nginx配置端口未启用 nginx 启动端口_Nginx_03

linux nginx配置端口未启用 nginx 启动端口_Nginx_04

执行网友的这个命令:

yum install libstdc++.i686

安装后再输入nginx的重载配置命令。

4.最后查看nginx启动,发现有2个nginx进程了:

linux nginx配置端口未启用 nginx 启动端口_Nginx_05

5.查看虚拟机centos的ip:

linux nginx配置端口未启用 nginx 启动端口_Nginx_06

其中ens33下的inet值就是centos的ip,然后再浏览器上输入这个ip,就可以访问nginx了:

linux nginx配置端口未启用 nginx 启动端口_Nginx_07

linux nginx配置端口未启用 nginx 启动端口_linux nginx配置端口未启用_08

 


相关命令总结:

1.nginx启动停止查看状态:

systemctl start nginx.service
    systemctl stop nginx.service
    systemctl reload nginx.service
    systemctl status nginx.service

2.查看nginx启动:

netstat -luntp|grep nginx

ps|grep grep nginx

3.nginx的配置:

验证配置:nginx -tc /etc/nginx/nginx.conf

重载配置: nginx -s reload -c /etc/nginx/nginx.conf

4.Nginx服务的启动:(摘抄自)

 一般情况下我们的Nginx是安装在 /usr/local/ 这个目录下面的

  首先 : cd /usr/local/nginx/sbin 我们可以看到下面的:

 

jiangjunhuideMacBook-Pro:sbin jiangjh$ pwd
  /usr/local/nginx/sbin
  jiangjunhuideMacBook-Pro:sbin jiangjh$ ls
  nginx

   这个目录下面的这个nginx 就是可执行文件,这时只需要执行  jiangjunhuideMacBook-Pro:sbin jiangjh$ ./nginx 同时执行这个命令时有参数可以选择的长常用的一个是指定Nginx的配置文件的 例如:jiangjunhuideMacBook-Pro:sbin jiangjh$ ./nginx -c /usr/local/nginx/conf/nginx.conf 因为这个配置文件的目录是默认的所以这里不用加参数的。

5.Nginx服务的停止:(摘抄自)

首先使用命令:jiangjunhuideMacBook-Pro:~ jiangjh$ ps -ef |grep nginx 查看nginx的pid 

  第一种:从容停止,kill -QUIT  进程号(pid)

  第二种:快速停止,kill -TEAM(INT) 进程号(pid)

  第三种:强制停止  kill -9 进程号(pid)

  其实nginx还有一种停止服务的方式:cd  /usr/local/nginx/sbin ; ./nginx -s stop

6..Nginx服务的重启:(摘抄自)

    第一种:首先使用命令:jiangjunhuideMacBook-Pro:~ jiangjh$ ps -ef |grep nginx 查看nginx的pid 

  jiangjunhuideMacBook-Pro:~ jiangjh$ kill -HUP  nginx的pid

  第二种:jiangjunhuideMacBook-Pro:~ jiangjh$ cd /usr/local/nginx/sbin 

  jiangjunhuideMacBook-Pro:~ jiangjh$ ./nginx -s reload


Nginx常用命令:

启动Nginx服务的方式:
1.全部由Linux宝塔界面自动化创建环境
2.xshell连接阿里云服务器,然后通过命令行启动。

下面的记述主要是针对xshell终端输入linux命令的。

1.启动Nginx服务
默认的情况下,Nginx是不会自动启动的,需要我们手动进行启动,当然启动Nginx的方法也不是单一的。

nginx直接启动:
在CentOS7.4版本里(低版本是不行的),是可以直接直接使用nginx启动服务的。
输入:nginx

使用systemctl命令启动:
使用个Linux的命令进行启动,这种方法无论启动什么服务,都是一样的,只是换一下服务的名字
输入:systemctl start nginx.service
输入命令后,没有任何提示,那我们如何知道Nginx服务已经启动了哪?可以使用Linux的组合命令,进行查询服务的运行状况。
输入:ps aux | grep nginx
输入后会出现对应的pid进程信息等。

2.停止Nginx服务的四种方法
(1).立即停止服务
nginx  -s stop
这种方法比较强硬,无论进程是否在工作,都直接停止进程。
(2).从容停止服务
nginx -s quit
这种方法较stop相比就比较温和一些了,需要进程完成当前工作后再停止。
(3).killall 方法杀死进程
killall nginx
这种方法也是比较野蛮的,我们直接杀死进程,但是在使用nginx -s quit没有效果时,我们用这种方法还是比较好的。
(4).systemctl 停止
systemctl stop nginx.service

3.重启Nginx服务
systemctl restart nginx.service

4.重新载入配置文件
在重新编写或者修改Nginx的配置文件后,都需要作一下重新载入,这时候可以用Nginx给的命令。
nginx -s reload

5.查看端口号
在默认情况下,Nginx启动后会监听80端口,从而提供HTTP访问,如果80端口已经被占用则会启动失败。可以使用
netstat -tlnp 命令查看端口号的占用情况。