将多个Unicorn App Server与一个Nginx反向代理服务器一起使用是不好的做法吗?

时间:2016-12-15 17:58:32

标签: nginx unicorn

我有一个运行Ubuntu 14.04的Linux机箱,内存大约50GB。

我有一个5或6个Ruby-on-Rails Web应用程序,每个都有一个Unicorn App服务器,全部由Nginx反向代理服务器提供服务。

每个应用都托管在子目录中。 例如:

  • www.webserver.com/app1
  • www.webserver.com/app2

每个应用每天可能会收到50-100个请求。它们都是促进我公司业务流程的小应用程序。

我的Nginx配置文件如下所示:

SetValue("")

这种设置在一年左右的时间内没有问题,但我有这种唠叨的感觉,我做错了......

如果我不断添加应用,我会遇到问题吗?有更好的方法吗?

更新

问题,"我的意思是:

  • 静态资源路径冲突?
  • 内存问题?即,使用超过我需要完成相同的行为?

通过"更好的方法来做到这一点,"我的意思是:

  • 除了通过解析URL中子目录的名称向相关的独角兽服务器发送请求
  • 我应该使用单个Nginx反向代理来投放多个应用吗?

1 个答案:

答案 0 :(得分:0)

对于不同应用程序的相同配置,您可以使用include指令。

示例,使用以下内容创建名为 /etc/nginx/global_proxy.conf 的文件:

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

nginx.conf 您的部分/ appX:

location /appX {
        proxy_pass http://appX;
        include /etc/nginx/global_proxy.conf;
}

为了提高安全性,我建议您添加 dhparam ,并将其添加到SSL配置中:

# SSL :
# drop SSLv3 (POODLE vulnerability)
    ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
# Recommanded ciphers
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
# Diffie–Hellman key exchange (D–H)
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;
# config to enable HSTS(HTTP Strict Transport Security)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
# force timeouts if one of backend is died
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

生成dhparam.pem文件:

  

openssl dhparam -out dhparam.pem 4096