nginx到cdn或node.js

时间:2011-09-08 19:05:29

标签: node.js nginx cdn rackspace-cloud

我有一个运行ngnix的简单示例,它代理我在localhost:3001上运行的node.js应用程序。现在我想添加一些优化,问题是我不确定我是否完全理解ngnix配置文件的工作方式。

我想要做的是通过代理转发通过ngnix从CDN提供index.html,about.html和main.js。我想我需要为这两个文件(以及最终的整个图像和css目录)添加类似重写的内容。

所以用户访问mydomain.com .. ngnix启动并从cdn.mydomain.com/index.html发送index.html。

以下是我现在所拥有的:

===================

proxy_redirect              off;                                                                                                                                                    
proxy_set_header            Host $host;                                                                                                                                             
proxy_set_header            X-Real-IP $remote_addr;                                                                                                                                 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;                                                                                                             

client_max_body_size        10m;                                                                                                                                                    
client_body_buffer_size     128k;                                                                                                                                                   
proxy_connect_timeout       600;                                                                                                                                                    
proxy_send_timeout          600;                                                                                                                                                    
proxy_read_timeout          600;                                                                                                                                                    
proxy_buffer_size           4k;                                                                                                                                                     
proxy_buffers               4 32k;                                                                                                                                                  
proxy_busy_buffers_size     64k;                                                                                                                                                    
proxy_temp_file_write_size  64k;                                                                                                                                                    
send_timeout                600;                                                                                                                                                    
proxy_buffering             off;                                                                                                                                                                                                                                                                                                                                        
####                                                                                                                                                                                
# the IP(s) on which your node server is running i choose the port 3001                                                                                                             
upstream app_yourdomian {                                                                                                                                                               
server 127.0.0.1:3001;                                                                                                                                                          
}                                                                                                                                                                                                                                                                                                                                                                       
# the nginx server instance                                                                                                                                                         
server {                                                                                                                                                                                
listen 0.0.0.0:80;                                                                                                                                                                  
server_name ec2-75-101-203-200.compute-1.amazonaws.com ec2-75-101-203-200.compute-1.amazonaws;                                                                                      
access_log /var/log/nginx/yourdomain.log;                                                                                                                                                                                                                                                                                                                               
# pass the request to the node.js server with the correct headers and much more can be added, see nginx config options                                                              
location / {                                                                                                                                                                          
proxy_set_header X-Real-IP $remote_addr;                                                                                                                                            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                                                                                                                        
proxy_set_header Host $http_host;                                                                                                                                                   
proxy_set_header X-NginX-Proxy true;                                                                                                                                                                                                                                                                                                                                    
proxy_pass http://localhost:3001;                                                                                                                                                   
proxy_redirect off;                                                                                                                                                               

}


}

============================

1 个答案:

答案 0 :(得分:0)

如果你真的需要代理(不是重定向)index,about和main.js,那么就可以为上面的每一个提供三个更简单的位置

location = /index.html {     proxy_pass ... }

您可能还想查看http://wiki.nginx.org/HttpCoreModule#location

对于没有正则表达式的位置,使用最具体的匹配。

欢迎在邮件列表http://mailman.nginx.org/mailman/listinfo/nginx

中提出更多问题