【发布时间】:2023-04-02 02:25:02
【问题描述】:
我继承了一个Microsoft Visual Studio MVC 项目进行修改,我现在需要允许用户将文件上传到Web 服务器。我将MS Visual Studio 中的Windows 11 和IIS Express 用于开发目的,IIS. 没有问题。但是,该应用程序在Ubuntu-based 服务器上运行,作为Web 服务器运行NGINX。
问题:当我尝试将大于 1MB 的文件从浏览器上传到生产服务器时,我收到错误消息“413 Request Entity Too Large”。在网上搜索后我发现:(a)NGINX 默认调用 1MB 限制; (b) 有必要通过添加NGINX "client-max-body-size" 指令来修改nginx.conf 文件。
我在生产服务器上找到了nginx.conf 文件,并使用Nano. 浏览了它。但是,由于Docker. 的存在,我没有尝试修改和保存文件,诚然,我几乎知道Docker 什么都没有,不幸的是,设置此服务器的负责人早已离开公司。此外,鉴于我认为有必要涉及Docker.,我不清楚是否简单地修改nginx.conf 文件并在生产服务器上重新启动NGINX 会起到作用
顺便说一句,我的客户使用Azure DevOps 来促进协作。我定期使用MS Visual Studio 中的Git 对我的项目进行更改,然后使用Ubuntu update_app.sh 脚本将更改推送到生产中。我之前曾尝试修改我的 MVC 项目的本地副本中包含的 nginx.conf 文件。该文件已通过Azure DevOps 推送到生产服务器,但修改后的nginx.conf 文件不会推送到生产服务器,可能是由于Docker. 的存在
如果有人向我解释Docker 和NGINX. 之间的交互,我将不胜感激。我将进一步感谢有关如何将修改后的nginx.conf 文件推送到生产环境的任何提示。
提前感谢您的帮助。
【问题讨论】:
-
解决方案取决于您的操作设置,这很难从您的帖子中获得感觉。没有关于您的部署过程如何工作的文档?在生产服务器上编辑文件可能是这样做的,但似乎很容易出错。
-
感谢您的及时回复。我同意,直接对生产服务器进行更改似乎非常冒险。
-
@Hans 操作设置如下。 (1) 在 MS Visual Studio 中进行代码更改。 (2) 代码更改通过 Azure DevOps 推送到 GitHub 存储库以进行暂存。 (3) 在生产服务器上运行脚本以将更改应用到 Docker 容器。脚本内容: (a) docker network create nginx-network; (b) docker-compose down; (c) git pull git@ssh.dev.azure.com:v3/{repo}; (d) docker-compose build --force-rm; (e) docker-compose up -d。我正在寻找一种解决方案来在本地(在 VS 中)修改 nginx.conf 和 Docker 文件,然后使用 3 步 DevOps/Git 过程来上传它们。
-
nginx.conf 是 repo 的一部分吗? nginx 容器是使用 Azure DevOps 构建的吗?这将是一个很好的方法。然后,您将更改存储库中的 nginx 配置,DevOps 管道将构建一个新映像并将其部署到生产环境。
-
@Hans 是的,我的开发机器上的仓库中有 nginx.conf 和 Dockerfile 的本地副本。我已经验证了我的开发机器的内容是 GitHub 存储库和产品服务器的镜像。修改 nginx.conf 文件很简单。但是,我不知道我在用 Docker 做什么,因此我很担心。
标签: docker visual-studio nginx azure-devops