如何在 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-enabled
和sites-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-available
和sites-enabled
?应该是sites-enabled
?
通常,您将配置文件放在sites-available
目录中,然后在sites-enabled
中创建指向该文件的符号链接。这样,您可以通过删除符号链接来禁用该站点,而无需删除文件。如果您收到 File exists
错误,您需要在创建符号链接之前删除该文件(确保您首先在其他地方有一个副本!)。有关sites-available
和sites-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 上上传我的 MEAN 应用程序(网站应用程序)?