为Azure应用程序Linux服务修改nginx.conf

xkftehaa  于 7个月前  发布在  Nginx
关注(0)|答案(3)|浏览(102)

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

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

字符串
现在我的问题是,我如何在Azure应用程序Linux容器中修改nginx.conf?我试图复制到/home/site。它不起作用。它总是从/etc/nginx获取nginx.conf。如果我用自己的版本替换该/etc/nginx/nginx.conf,它将在下次重新启动时被覆盖。
有没有办法我可以使用我自己的nginx.conf?或者我应该创建一个自定义容器来解决它?

soat7uwm

soat7uwm1#

实际上,您可以通过应用服务的启动命令修改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服务。这不是最常见的解决方案,但它可以工作。

qnyhuwrf

qnyhuwrf2#

你不能修改nginx. conf。因为你在微软的docker容器里,你将不能改变它。
/home目录之外的任何文件或目录将不会在站点目录之间持久化。这可能会以几种不同的方式影响您。您无权更改此设置,因为它在Azure沙箱下被锁定。
https://learn.microsoft.com/en-us/archive/blogs/waws/things-you-should-know-web-apps-and-linux#CIFS

unhi4e5o

unhi4e5o3#

我知道这个问题很古老,但我找到了答案:
基本上:

  • 复制nginx配置文件并保存到/home目录
  • 进行所需的编辑
  • 使用启动命令(配置>常规设置>启动命令)将nginx配置复制回nginx目录并重新启动nginx。

这与GitHub Actions部署btw配合得很好,所以这是一个非常可靠的解决方案。
https://techcommunity.microsoft.com/t5/apps-on-azure-blog/configure-nginx-for-php-8-linux-azure-app-service/ba-p/3069373

相关问题