Bash 使用Docker配置uwsgi和nginx
我已经为python生产服务器分别配置了Bash 使用Docker配置uwsgi和nginx,bash,nginx,docker,uwsgi,Bash,Nginx,Docker,Uwsgi,我已经为python生产服务器分别配置了uwsgi和nginx。我已经用工作配置分别配置了它们。我的uwsgi单独工作正常,而nginx单独工作正常。我的问题是,我计划使用docker进行此设置,但无法同时运行uwsgi和nginx,即使我使用的是bash文件。以下是我的配置中的相关部分 Dockerfile: mysite.conf start.sh: 输出shell文件 有人能帮助我如何使用bash脚本设置它吗 您的start.sh脚本在执行这两个命令后有立即终止的风险。 这将在启动容器后
uwsgi
和nginx
。我已经用工作配置分别配置了它们。我的uwsgi
单独工作正常,而nginx
单独工作正常。我的问题是,我计划使用docker进行此设置,但无法同时运行uwsgi
和nginx
,即使我使用的是bash文件。以下是我的配置中的相关部分
Dockerfile:
mysite.conf
start.sh:
输出shell文件
有人能帮助我如何使用bash脚本设置它吗 您的
start.sh
脚本在执行这两个命令后有立即终止的风险。这将在启动容器后立即终止容器 您至少需要确保nginx start命令不会立即退出。
委员会: 另一种方法是保持脚本不变,但用于在
/etc/supervisor/conf.d/supervisordconf
这样,您就不会暴露于“”:停止容器将等待两个进程终止,然后再退出。我认为有一个非常基本但重要的选择值得指出 您最初的情景是:
- 生产环境
- uwsgi和nginx单独运行良好
- 用于uwsgi nginx通信的TCP套接字
我知道这个问题是否存在,并将nginx守护进程添加到脚本中。为了清晰起见,我添加了更多的代码。请你检查一下,让我知道我错了什么?@PenkeySuresh当你说“我不能同时运行uwsgi和nginx”时,你看到了什么错误?我的构建成功,docker进程处于活动状态[当我运行docker ps时,它说它处于活动状态]。我可以在终端上看到***uWSGI正在多解释器模式下运行***。但网站还没有开通。当我进入容器(通过docker exec bash)并检查nginx服务时,它表示nginx没有运行。我已将运行uwsgi和nginx的两个命令放在同一个bash脚本中。我更改了bash脚本,以在运行uwsgi命令之前输出nginx的状态。它输出nginx未运行。在运行wsgi之后,我再次输出状态,但它根本没有被执行
#python setup
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN rm /etc/nginx/sites-enabled/default
RUN ln -s mysite.conf /etc/nginx/sites-enabled/
EXPOSE 80
CMD ["/bin/bash", "start.sh"]
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:8001; # for a web port socket
}
server {
listen 80;
server_name aa.bb.cc.dd; # ip address of the server
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params; # the uwsgi_params file
}
}
service nginx status
uwsgi --socket :8001 --module server.wsgi
service nginx restart
service nginx status # ------- > doesn't get executed :(
nginx -g daemon off;