Nginx的代理

回复 收藏
upstream bbs.aaa.cn{
            server 1.2.3.1:80;
            server  1.2.3.4:80;
        }


        server {
            listen 80;
            server_name bbs.aaa.cn;

            location / {
                proxy_pass      http://bbs.aaa.cn/;
                proxy_set_header Host   $host;
                proxy_set_header X-Real-IP      $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
#            access_log  /home/logs/bbs.access combined;
        }


        upstream blog.aaa.cn{
            server  1.2.3.1:80;
            server  1.2.3.4:80;
        }

        server {
            listen 80;
            server_name blog.aaa.cn;

            location / {
                proxy_pass      http://blog.aaa.cn/;
                proxy_set_header Host   $host;
                proxy_set_header X-Real-IP      $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
#            access_log  /home/logs/ss.access combined;
        }
2009-10-23 17:55 举报
已邀请:
0

阿铭 管理员

赞同来自:

经测试发现,可以用nginx代理一个服务器上所有域名,方法如下:
1. 主配置文件不需要更改任何配置
2. 在vhosts目录下需要建立两个文件,一个是servername 列表文件,一个是虚拟主机配置文件
两个文件内容分别为
(1) servername
server_name www.123.net.cn  www.alsdjfl.com   www.asdfa1.com;  //就这么简单一行,当然这个server_name 还可以继续添加的

(2) 虚拟主机配置文件
server {
            listen 80;
            include vhosts/servername; // 这里的文件就是上边那个servername列表文件
            location / {
                proxy_pass     http://1.2.1.2/;  //这里就是需要做代理的服务器ip地址了
                proxy_set_header Host   $host;
                proxy_set_header X-Real-IP      $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            access_log  /dev/null;
        }
0

雷老师 管理员

赞同来自:

本帖最后由 lqph3387 于 2010-9-30 13:54 编辑

针对apache和nginx共同协作的网站架构,也可以根据动态内容和静态内容的请求来做负载均衡
如:
        upstream apache.com{
            server  1.2.3.1:80;
            server  1.2.3.4:80;
        }
location   ~*   .*\.(php|phps|jsp)$
        {
                proxy_pass  http://apache.com;
        }
0

jade

赞同来自:

老师 我 nginx.conf是用的你的配置。。然后 upstream 也是这样。。但是 -t 的时候 提示不允许 upstream 用在这里  是 怎么 办 ???
[root@nginx vhosts]# /usr/local/nginx/sbin/nginx -t
nginx: [emerg] "upstream" directive is not allowed here in /usr/local/nginx/conf/vhosts/upstr.conf:1
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
0

sss

赞同来自:

jade 发表于 2014-11-16 20:22
老师 我 nginx.conf是用的你的配置。。然后 upstream 也是这样。。但是 -t 的时候 提示不允许 upstream 用 ...

你这个是什么原因造成的,我也碰到这种情况
0

lyhabc

赞同来自:

本帖最后由 lyhabc 于 2016-1-5 18:23 编辑
雷老师 发表于 2010-9-30 13:53
针对apache和nginx共同协作的网站架构,也可以根据动态内容和静态内容的请求来做负载均衡
如:
        u ...

也就是动静分离,只是啊铭老师lamp/lnmp阶段复习讲课的时候是一个后端apache,雷老师这里是两个后端apache
0

hwl888

赞同来自:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: