妈的。nginx访问不了。。。就是浏览器打开看不到nginx的标准界面。
我的是centos 7.6
解决:
1.前提:root权限
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
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上找到了帖子:
执行网友的这个命令:
yum install libstdc++.i686
安装后再输入nginx的重载配置命令。
4.最后查看nginx启动,发现有2个nginx进程了:
5.查看虚拟机centos的ip:
其中ens33下的inet值就是centos的ip,然后再浏览器上输入这个ip,就可以访问nginx了:
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服务的启动:(摘抄自https://www.cnblogs.com/junhuijiang/p/4757686.html)
一般情况下我们的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服务的停止:(摘抄自https://www.cnblogs.com/junhuijiang/p/4757686.html)
首先使用命令: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服务的重启:(摘抄自https://www.cnblogs.com/junhuijiang/p/4757686.html)
第一种:首先使用命令: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服务的方式:
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 命令查看端口号的占用情况。