Nginx代理设置

时间:2012-05-10 21:24:50

标签: proxy nginx request sinatra

嘿伙计我在使用nginx代理时遇到了麻烦。

我想将其设置为将所有请求重定向到一个外部网站(已有)。

但是除了域名hg.mydomain.com上的请求这些请求我想重定向到localhost:4567(sinatra app住在那里)

但那不起作用

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";


    server {
       listen       80;
       server_name  *.hg.mydomain.com;

       location / {
            proxy_pass http://127.0.0.1:4567/;
       }
    }

    server {
        listen 80;

        location / {
            proxy_pass http://sb.mydomain.com;
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Shoebox-Host $host;
       }
    }
}

1 个答案:

答案 0 :(得分:0)

如果您希望http://hg.mydomain.com指向Sinatra应用,您可能需要更改该行

       server_name  *.hg.mydomain.com;

       server_name  .hg.mydomain.com;

       server_name  hg.mydomain.com;

此外,您可能希望将default_server添加到listen以获取默认服务器。在此处详细了解:http://wiki.nginx.org/HttpCoreModule#listen