原已部署网站无法访问,问题排查以及通过ngnix解决过程

背景

公司让研究可视化方案superset, metabase,我就在公司的内网服务器中,安装python,java,docker环境啊,在服务于器上一顿操作后,最后由于内网环境中很多安装包无法下载,放弃了。隔了几天居然发现原来部署在服务器上的静态页面的网站居然都无法访问了。万幸是开发环境, 没有造成事故。接下来我来说明一下,我排查的过程。

步骤

检查端口是否通
  • cmd, 进入命令行管理工具
  • 输入telnet 172.22.2.20 8003 命令(根据自己的实际情况,修改ip和端口号)

注:如果报telnet不是内部或外部命令,解决方式如下链接:https://jingyan.baidu.com/article/7c6fb428d60c6e80642c90ee.html,不同系统可能会有差异,请自行解决一下。

发现端口不通后,开通端口
  • 端口不通示例图形式如下:
    端口无法示例图
  • 登陆服务器,查看端口开通情况

可以参考此地址的下的相关命令:https://www.cnblogs.com/rh-fernando/p/11340057.html

  • 查看开启端口:netstat -ntlp 或:firewall-cmd --list-ports 在此命令下查看端口,发现确实无8016端口
    已打开的端口图

开启端口号(可以通单个端口或者多个端口),具体命令可见上面文档中介绍,这里我就开启多个端口号了,免得以后还要开通,哈哈哈

  • 开启多个端口号 firewall-cmd --zone=public --add-port=8016-8020/tcp --permanent
    注:开启端口好,务必重启防火墙,命令是systemctl restart firewalld.service,再次查看端口列表才能看到设置的结果哦
    开启多个端口号的图例展示

重新安装ngnix,配置文档,重新启动

端口号也开了,发现页面是还无法访问, 应该是根本服务根本没有启动,故重新安装了ngnix

  • ngnix 安装过程参考地址:https://www.runoob.com/linux/nginx-install-setup.html 这个就够用了
  • 在安装好后,重新命令 /usr/local/webserver/nginx/sbin/nginx -s reopen (安装目录你们自己的就行)报了错,类似如下图:
    nginx缺少pid报错
  • 使用nginx -c的参数指定nginx.conf文件的位置, 我的命令是/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf

隐约还记得杀了端口的进程,kill -9 lsof -i :8003 |grep nginx |grep -v grep|awk ‘{print $2}’,可能是ngnix一直无法启动的缘故

  • 找到ngnix安装目录 whereis ngnix,找到安装目录,对ngnix 进行配置

    我们重点关注一下,端口,服务器,html 目录位置,路由转发,详细的解释可以参考地址:
    https://www.runoob.com/w3cnote/nginx-setup-intro.html
    示例ngnix配置如下:
server
  {
    listen 80;#监听端口
    server_name localhost;#域名
    index index.html index.htm index.php;
    root /usr/local/webserver/nginx/html; #站点目录
    location /service-jxapp/
    {
        proxy_pass https://javaws01-srv.juneyaoair.com;
        proxy_set_header Host $host:$server_port;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
      expires 30d; # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
      expires 15d; # access_log off;
    }
    access_log off;
  }
可以配置多个server对象
  • 重启 Nginx /usr/local/webserver/nginx/sbin/nginx -s reopen 执行命令即可了

上传文件过程中,nginx产生【413 request entity too large】错误的原因与解决方法

nginx Entity Too Large
Nginx中的【client_max_body_size】配置属性

通过查资料,发现是Nginx配置中限制了请求的实体大小,因此就可以通过修改Nginx的配置文件来解决这个问题。
http节点下:

http {
    # 将Nginx代理的所有请求实体的大小限制为20m
    client_max_body_size 20m;
}
server {
    # 将该服务下的所有请求实体的大小限制为20m
    client_max_body_size 20m;
}
location /yanggb {
    # 将此路由请求的实体大小限制为20m
    client_max_body_size 20m;
}

nignx的URL匹配规则的部分,如果**接口上没有拦截的字段标识,可以前端加规则,**例如:前端在接口请求的时候,统一的加上API,然后在使用ngnix中进行配置转发地址。
例如:

{
	location /api/
    {
        proxy_pass https://xxx.com;
    }
}

保存之后要记得重启Nginx使修改后的配置生效。
3条重要命令

/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx

nginx重启后出现[error]open(“/usr/local/webserver/nginx/nginx.pid” failed

如何生成nginx.pid文件

在sbin/ 路径下执行, 就会自动生成pid文件

# 找到目录位置
cd /usr/local/webserver/nginx/sbin 
# 生成pid
./nginx -c /usr/local/webserver/nginx/conf/nginx.conf
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monkey01127

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值