【问题标题】:serving static files with nginx on diffent machine and gunicorn on a diffrent one for a django production在不同的机器上使用 nginx 提供静态文件,在不同的机器上使用 gunicorn 提供 django 生产
【发布时间】:2013-09-02 19:14:44
【问题描述】:

我目前在同一台服务器上拥有 nginx 和 gunicorn,但希望在不同的服务器上拥有它们我尝试如下设置。Postgres 在另一台机器(server1)上,然后连接到 server2 上的 gunicorn。哪个 gunicon 保存并将文件上传到。Gunicon 在本地网络上,无法从外部访问。我有一个从我的应用程序到外部硬盘驱动器的符号链接。在 server3 上我有 nginx,可以从外部访问它是代理到 server2 上的 nginx。我不希望 gunicon 到服务器静态文件,所以我也做了一个 sshfs 链接到服务器上的挂载点,然后 ngix 现在直接服务器静态内容。这一切都很好,但是我不时注意到 sshfs 连接总是断开,这在生产中并不好。请任何人建议我在生产环境中执行此操作的正确方法。这是我的配置。

服务器2

# mount /dev/sde1 /home/me/HD
$ mkdir -p /home/me/HD/currentapp/static && mkdir -p /home/me/HD/currentapp/media
$ ln -s /home/me/HD/currentapp/media  /allmyapps/currentapp/currentapp/media
$ ln -s /home/me/HDcurrentapp/static  /allmyapps/currentapp/currentapp/static

服务器 3

$ mkdir -p /home/me/HD/currentapp/
# sshfs -p(port number here) me@Server2:/home/me/HD /home/me/HD -o uid=1000 -o gid=33 -o allow_other

server3 nginx

upstream my_server {
server server2:port fail_timeout=0;
}

location /static/ {
alias /home/me/HD/currentapp/static/;
}
location /media/ {
alias /home/me/HD/currentapp/media/;
}

location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://my_server;
break;
}

谢谢

【问题讨论】:

    标签: django postgresql nginx gunicorn


    【解决方案1】:

    请任何人建议我在制作中做到这一点的正确方法 环境。

    使用安装在两台计算机上的网络附加存储 (NAS) 设备。这就是您在生产中的正确方式

    您可以使用各种其他解决方法 - 例如 rsync、nfs 等。但是最可靠的方法是使用合适的 NAS。

    【讨论】:

      猜你喜欢
      • 2021-07-18
      • 2019-02-13
      • 2013-06-27
      • 2017-05-31
      • 2018-05-23
      • 2023-03-05
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      相关资源
      最近更新 更多