0

我目前在同一台服务器上安装了 nginx 和 gunicorn,但希望将它们安装在不同的服务器上并将文件上传到.Gunicon 在本地网络上,无法从外部访问。我有一个从我的应用程序到外部硬盘驱动器的符号链接。在 server3 上我有 nginx,可以从外部访问,它是 nginx 的代理在 server2 上。我不希望 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

服务器3 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;
}

谢谢

4

1 回答 1

0

请任何人建议我在生产环境中执行此操作的正确方法。

使用安装在两台计算机上的网络附加存储 (NAS) 设备。这就是你如何在生产中以正确的方式做到这一点。

你可以做各种其他的变通方法——比如 rsync、nfs 等,但是最可靠的方法是使用合适的 NAS。

于 2013-09-02T11:14:44.717 回答