宝塔Linux+docker部署nginx出现403 Forbidden

news2025/1/24 11:50:23

本文主要讲述了宝塔+docker部署nginx出现403 Forbidden的原因,以及成功部署前端的方法步骤。

目录

  • 1、问题描述
  • 2、问题检测
    • 2.1 检测监听端口是否异常
    • 2.2 检测Docker容器是否异常
      • 2.2.1 打开宝塔Linux的软件商店,找到Docker管理器,查看前端容器是否正常打开
      • 2.2.2 没有安装Docker管理器,可以在应用商店直接搜索安装
    • 2.3 检查nginx.conf配置
    • 2.4 检查Dockerfile配置
  • 3、解决方案
  • 4、测试修改是否成功
    • 4.1 将修改后的dockerfile文件替换掉宝塔中的dockerfile
    • 4.2 再次创建前端Docker容器
    • 4.3 小报错
      • 4.3.1 出现报错,说80端口已经被占用。
      • 4.3.2 发现问题是没有权限。

1、问题描述

最近使用宝塔Linux+docker部署了一个前端项目,但部署成功后发现打不开页面,显示403 Forbidden
在这里插入图片描述

2、问题检测

2.1 检测监听端口是否异常

我这里设置的监听端口是80,检查宝塔Linux的防火墙,防火墙显示端口正常
在这里插入图片描述

2.2 检测Docker容器是否异常

2.2.1 打开宝塔Linux的软件商店,找到Docker管理器,查看前端容器是否正常打开

在这里插入图片描述
这里显示容器的端口号和状态都是正常的
在这里插入图片描述

2.2.2 没有安装Docker管理器,可以在应用商店直接搜索安装

在这里插入图片描述

2.3 检查nginx.conf配置

这里是我的nginx.conf配置,经过问同学以及在网上找资料,得出结论nginx配置是没问题的

server {
    listen 80;

    # gzip config
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    root /usr/share/nginx/html;
    include /etc/nginx/mime.types;

    location / {
        try_files $uri /index.html;
    }
}

2.4 检查Dockerfile配置

经过最终检查,问题如下图所示。我设置的工作目录和copy的dist目录路径不一致。
工作目录我写的是user,而在copy的目录里我写的usr
在这里插入图片描述

3、解决方案

修改dockerfile文件,换成如下代码

FROM nginx

# 解决容器时期与真实时间相差 8 小时的问题
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone

# 复制代码到容器内
WORKDIR /usr/share/nginx/html/
USER root

COPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf


COPY ./dist /usr/share/nginx/html/

EXPOSE 80

# 容器启动时运行 jar 包
CMD ["nginx", "-g", "daemon off;"]

4、测试修改是否成功

4.1 将修改后的dockerfile文件替换掉宝塔中的dockerfile

打开宝塔dockerfile所在目录,拖动修改过的本地dockerfile上传
在这里插入图片描述
在这里插入图片描述

4.2 再次创建前端Docker容器

由于我是使用的腾讯云的轻量应用服务器创建的宝塔Linux,因此这里直接在腾讯云里登录打开宝塔终端
在这里插入图片描述
输入 sudo -s进入root模式,防止待会出现权限问题

sudo -s

cd进入含有Dockerfile文件的目录下,输入以下代码构建新的容器

docker build -t xxxxx:0.0.1 .

将上述代码中的xxxxx替换成你的容器名,!!!注意:代码最后面有一个“ . ”,千万不能漏了。
在这里插入图片描述
在这里插入图片描述
容器构建完毕,输入docker run -p 80:80 -d xxxxxx运行刚才创建好的容器。命令中的-d作用是在后台运行该容器,删去-d则会在前台直接打开容器,这里推荐加上-d。

docker run -p 80:80 -d xxxxxx

注意使用时将上述代码中的xxxxx替换成你的容器名。

4.3 小报错

在这里插入图片描述

4.3.1 出现报错,说80端口已经被占用。

打开软件商店的Docker管理器,发现原来是上一个错误配置的容器还未停止。如图点击,直接停止该容器。
在这里插入图片描述
在这里插入图片描述
再次执行docker run -p 80:80 -d xxxxxx,启动容器。
输入 netstat -ntlp查看当前所有监听端口,输入docker ps查看当前目录启动的容器

netstat -ntlp
docker ps

在这里插入图片描述
发现运行还是失败了。仍然是403 Forbidden。在这里插入图片描述
打开宝塔Docker管理器,打开刚才运行的容器日志
在这里插入图片描述
在这里插入图片描述

4.3.2 发现问题是没有权限。

打开终端输入docker exec -i -t d0048aa75626 /bin/bash进入容器,在输入chmod -R 777 /usr/share/nginx/html赋予对应文件夹root权限。

docker exec -i -t d0048aa75626 /bin/bash
chmod -R 777 /usr/share/nginx/html

在这里插入图片描述
注意docker exec -i -t d0048aa75626 /bin/bash中的d0048aa75626 是容器id,这个可以通过在容器外输入命令docker ps查看,/usr/share/nginx/html这个是没有权限打开的文件的文件夹。如果已经在容器中,可以输入exit退出容器。
在这里插入图片描述
赋予权限完毕,再次打开公网地址,成功运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2281403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tensor 基本操作2 理解 tensor.max 操作,沿着给定的 dim 是什么意思 | PyTorch 深度学习实战

前一篇文章,Tensor 基本操作1 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 目录 Tensor 基本操作torch.max默认指定维度 Tensor 基本操作 torch.max torch.max 实现降维运算,基于指定的 d…

[Linux] 进程管理与调度机制

文章目录 一.进程前言1.冯诺依曼体系结构2.操作系统 二.进程相关概念1.PCB2.查看进程标识符3.父与子进程 三.进程状态1.状态类别1).运行2).阻塞3).挂起 2.Linux下的状态1).R(running)2).S(Sleeping)3).D(disk sleeping)4).T(stopped)5).t(tracing stopped)6).Z(僵尸进程)7).孤儿…

复位信号的同步与释放(同步复位、异步复位、异步复位同步释放)

文章目录 背景前言一、复位信号的同步与释放1.1 同步复位1.1.1 综述1.1.2 优缺点 1.2 recovery time和removal time1.3 异步复位1.3.1 综述1.3.2 优缺点 1.4 同步复位 与 异步复位1.5 异步复位、同步释放1.5.1 总述1.5.2 机理1.5.3 复位网络 二、思考与补充2.1 复…

Unity中关于实现 管道水流+瀑布流动+大肠蠕动效果笔记

Unity中关于实现 管道水流瀑布流动大肠蠕动效果笔记 效果展示: 参考资料及链接: 1、如何在 Unity 中创建水效果 - 水弯曲教程 https://www.youtube.com/watch?v3CcWus6d_B8 关于补充个人技能中:顶点噪波影响网格着色器配合粒子实现水特效 …

Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。

Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。Cloudpods不仅可以管理本地的虚拟机和物理机资源,还可以管理多个云平台和云账号。Cloudpods隐藏了这些异构基础设施资源的数据模型和API的差异,对…

【LeetCode】--- MySQL刷题集合

1.组合两个表(外连接) select p.firstName,p.lastName,a.city,a.state from Person p left join Address a on p.personId a.personId; 以左边表为基准,去连接右边的表。取两表的交集和左表的全集 2.第二高的薪水 (子查询、if…

JavaScript学习笔记(3)

一.BOM对象 BOM的全称是Browser Object Model,翻译过来是浏览器对象模型。也就 是JavaScript将浏览器的各个组成部分封装成了对象。我们要操作浏览器的部分功能,可以通过操作 BOM对象的相关属性或者函数来完成。例如:我们想要将浏览器的地址改为 http:/…

DRG/DIP 2.0时代下基于PostgreSQL的成本管理实践与探索(下)

五、数据处理与 ETL 流程编程实现 5.1 数据抽取与转换(ETL) 在 DRG/DIP 2.0 时代的医院成本管理中,数据抽取与转换(ETL)是将医院各个业务系统中的原始数据转化为可供成本管理分析使用的关键环节。这一过程涉及从医院 HIS 系统中抽取患者诊疗数据,并对其进行格式转换、字…

【玩转全栈】----YOLO8训练自己的模型并应用

继上篇: 【玩转全栈】---基于YOLO8的图片、视频目标检测-CSDN博客 相信大家已经可以训练一些图片和视频了,接下来我将为大家介绍如何训练自己的特定模型,并用其进行检测 目录 准备数据 图片数据 标识数据 配置文件 运行 测试训练结果 存在的问…

简洁实用的wordpress外贸模板

简洁、实用、大气的wordpress外贸模板,适合跨境电商搭建外贸B2B产品展示型网站。 简洁实用的wordpress外贸模板 - 简站WordPress主题简洁、实用、大气的wordpress外贸模板,适合跨境电商搭建外贸B2B产品展示型网站。https://www.jianzhanpress.com/?p828…

Caesar

Caesar 打开.txt: oknqdbqmoq{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} 根据题目判断是凯撒密码,flag前头是cyberpeace{},可以得到偏移量是12. 所以: cyberpeace{you_have_learned_caesar_encryption} 下面是我找的关于凯撒密码的解密脚本 c…

OpenEuler学习笔记(四):OpenEuler与CentOS的区别在那里?

OpenEuler与CentOS的对比 一、基本信息 起源与背景: OpenEuler:由华为发起,后捐赠给开放原子开源基金会,旨在构建一个开放、多元化的云计算和边缘计算平台,以满足华为及其他企业的硬件和软件需求。CentOS:…

纯css实现div宽度可调整

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>纯css实现div尺寸可调整</title><style…

Cesium特效——城市白模的科技动效的各种效果

最终效果图如下&#xff1a; 实现方法&#xff1a; 步骤一&#xff1a;使用cesiumlib生产白模&#xff0c;格式为3dtiles 注意事项&#xff1a;采用其他方式可能导致白模贴地&#xff0c;从而导致不能实现该效果&#xff0c;例如把步骤二的服务地址改为Cesium Sandcastle 里的…

JavaWeb 学习笔记 XML 和 Json 篇 | 020

今日推荐语 愿你遇见好天气,愿你的征途铺满了星星——圣埃克苏佩里 日期 学习内容 打卡编号2025年01月23日JavaWeb笔记 XML 和 Json 篇020 前言 哈喽&#xff0c;我是菜鸟阿康。 以下是我的学习笔记&#xff0c;既做打卡也做分享&#xff0c;希望对你也有所帮助…

【力扣:新动计划,编程入门 —— 题解 ②】

—— 25.1.23 1512. 好数对的数目 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] nums[j] 且 i < j &#xff0c;就可以认为这是一组 好数对 。 返回好数对的数目。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1,1,3] 输出&#xff1a;4 解释&#xff…

如何在data.table中处理缺失值

&#x1f4ca;&#x1f4bb;【R语言进阶】轻松搞定缺失值&#xff0c;让数据清洗更高效&#xff01; &#x1f44b; 大家好呀&#xff01;今天我要和大家分享一个超实用的R语言技巧——如何在data.table中处理缺失值&#xff0c;并且提供了一个自定义函数calculate_missing_va…

《RWA全球产业白皮书》发布:向凌云教授解析全球经济转型与RWA的未来

2025年1月16日&#xff0c;旅美经济学家、全球新兴产业金融专家向凌云教授在美国发布了引人注目的《RWA全球产业白皮书》。该白皮书通过深入分析全球产业结构变化&#xff0c;尤其强调了“真实世界资产”&#xff08;Real-World Assets&#xff0c;简称RWA&#xff09;在当前及…

TOGAF之架构标准规范-信息系统架构 | 数据架构

TOGAF是工业级的企业架构标准规范&#xff0c;信息系统架构阶段是由数据架构阶段以及应用架构阶段构成&#xff0c;本文主要描述信息系统架构阶段中的数据架构阶段。 如上所示&#xff0c;信息系统架构&#xff08;Information Systems Architectures&#xff09;在TOGAF标准规…

安宝特方案 | AR在供应链管理中的应用:提升效率与透明度

随着全球化的不断深入和市场需求的快速变化&#xff0c;企业对供应链管理的要求也日益提高。如何在复杂的供应链环境中提升效率、降低成本&#xff0c;并确保信息的透明度&#xff0c;成为了各大行业亟待解决的问题。而增强现实&#xff08;AR&#xff09;技术&#xff0c;特别…