【问题标题】:Modifying nginx.conf for Azure App Linux Service修改 Azure App Linux 服务的 nginx.conf
【发布时间】:2022-03-08 10:51:40
【问题描述】:

我正在 Azure 应用服务中部署一个在 Linux 容器上运行的 ReactJS 应用程序。 ReactJS 应用程序有路由器。由于 ReactJS 路由,内部页面刷新失败。根据React-router and nginx,我可以通过在 nginx.conf 中添加以下块来解决这个问题

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

现在我的问题是如何修改 Azure App Linux 容器内的 nginx.conf?我试图复制到/home/site。那没起效。它总是从 /etc/nginx 获取 nginx.conf。如果我将 /etc/nginx/nginx.conf 替换为我自己的版本,它将在下次重新启动时被覆盖。

无论如何我可以使用我自己的 nginx.conf 吗?还是我应该创建一个自定义容器来解决它?

【问题讨论】:

    标签: azure nginx azure-web-app-service


    【解决方案1】:

    你不能修改 nginx.conf。由于您位于 Microsoft docker 容器中,因此您将无法更改它。

    /home 目录之外的任何文件或目录都不会在站点回收之间保留。这可能会以几种不同的方式影响您。您无权更改它,因为它被锁定在 Azure 沙箱下。

    https://docs.microsoft.com/en-us/archive/blogs/waws/things-you-should-know-web-apps-and-linux#CIFS

    【讨论】:

      【解决方案2】:

      其实你可以通过应用服务的启动命令来修改你的nginx配置。

      • SSH 进入您的应用服务。

      • 将默认的 nginx 配置文件复制到你的主目录:

        cp /etc/nginx/sites-available/default /home/site/nginx.conf
        
      • 修改复制的 nginx 配置文件/home/site/nginx.conf 并包含您的自定义配置。

        vi /home/site/nginx.conf
        
      • 使用以下内容创建一个 bash 文件 /home/site/startup.sh

        cp /home/site/nginx.conf /etc/nginx/sites-available/default
        service nginx reload
        
      • 将您的应用服务启动命令设置为/home/site/startup.sh

      在启动过程中,您的应用服务将覆盖默认的 nginx 配置并重新加载 nginx 服务。这不是最可维护的解决方案,但它确实有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-19
        • 1970-01-01
        • 2023-04-02
        • 2017-07-03
        • 2016-11-07
        相关资源
        最近更新 更多