如何在 Digital Ocean 的源代码控制中包含 nginx 和 gunicorn 配置文件?

Posted

技术标签:

【中文标题】如何在 Digital Ocean 的源代码控制中包含 nginx 和 gunicorn 配置文件?【英文标题】:How do I include nginx and gunicorn configuration files in source control on Digital Ocean? 【发布时间】:2015-06-04 23:09:39 【问题描述】:

我在 Digital Ocean 液滴上运行 gunicorn 和 nginx。我面临的问题是这些服务的配置文件位于

/etc/nginx/sites-enabled/django

/etc/init/gunicorn.conf

而我的代码在/src/my_project

我的问题是,我的源代码受源代码控制。 /etc/ 中的配置文件不是。这个问题,How do you deal with configuration files in source control?,说你应该把你的配置文件保存在源代码管理中,但它没有解释如何配置它们。

如何将我的 nginx 和 gunicorn 配置文件包含在我的 django 项目的其余部分的源代码控制中,同时仍将配置文件正确地附加到服务器上的 nginx 和 gunicorn?谢谢!

【问题讨论】:

【参考方案1】:

您可以将您的 nginx 配置文件添加到您的存储库中

mv /etc/nginx/sites-available/django /src/my_project/nginx/django
git add /src/my_project/nginx/django

然后创建一个符号链接。

ln -s /src/my_project/nginx/django /etc/nginx/sites-enabled/django

你可以对你的 gunicorn 配置做同样的事情。

【讨论】:

谢谢 - 一个问题。你为什么使用sites-enabledsites-available?我按照您的建议尝试了sites-enabled,但出现以下错误:ln: failed to create symbolic link ‘/etc/nginx/sites-enabled/django’: File exists。尝试创建指向 sites-available 的符号链接,我收到 Nginx 502 Bad Gateway 错误。 实际上我遇到的主要问题是我收到了 502 Bad Gateway 错误。为什么你使用sites-availablesites-enabled?应该是sites-enabled 通常,您将配置文件放在sites-available 目录中,然后在sites-enabled 中创建指向该文件的符号链接。这样,您可以通过删除符号链接来禁用该站点,而无需删除文件。如果您收到 File exists 错误,您需要在创建符号链接之前删除该文件(确保您首先在其他地方有一个副本!)。有关sites-availablesites-enabled 的更多说明,请参阅this question。 感谢您的帮助。修复了 Nginx。在 Gunicorn 方面,我遇到了这个问题:***.com/questions/29401736/… 起初 Gunicorn 根本不会重新启动,我应用了这个修复:serverfault.com/a/224655/200183 现在,这个过程开始了,但我得到了Failed to load resource: net::ERR_CONNECTION_REFUSED 和Gunicorn 或 Nginx 日志中没有显示任何明显的内容。你知道我可以在哪里搜索可以帮助我解决问题的日志吗?或者知道问题可能是什么? 我对您的 gunicorn 问题没有任何建议。希望你能弄清楚。

以上是关于如何在 Digital Ocean 的源代码控制中包含 nginx 和 gunicorn 配置文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Live Server (Digital Ocean) 中部署 Angular App?

如何在 Digital Ocean 中设置环境变量?

我无法在Digital Ocean上进行远程部署

我如何在 Digital Ocean 上上传我的 MEAN 应用程序(网站应用程序)?

如何将 Amazon Route 53 与 Digital Ocean 水滴一起使用?

Digital Ocean Forbidden 您无权访问此资源