当前位置: 代码迷 >> Java Web开发 >> nginx为什么两个域名都跳到同一个网站
  详细解决方案

nginx为什么两个域名都跳到同一个网站

热度:37   发布时间:2016-04-13 22:10:23.0
nginx为何两个域名都跳到同一个网站?
一台服务器上运行了2个tomcat,端口分别是8080和8081。用nginx作反向代理,目的是让两个独立域名分别访问两个网站。但是我配置好nginx后,两个域名都跳到同一个网站,哪位大神帮我看看怎么回事,谢谢。
已经测试过nginx-1.7.11和1.9.5两个版本都一样。

配置如下 :


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;

    upstream web_server1 {
server 127.0.0.1:8080;
}


server {
listen       80;
server_name  *.yongshunfeng.com;

location /  {
proxy_pass http://web_server1;
proxy_set_header   Host    $host;
proxy_set_header   X-Real-IP   $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
break;
}
}

upstream web_server2 {
server 127.0.0.1:8081;
}

server {
listen       80;
server_name  *.szysqkj.com;

location /  {
root D:/project/order/target/order;
proxy_pass http://web_server2;
proxy_set_header   Host    $host;
proxy_set_header   X-Real-IP   $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
break;
}
}

}



这种配置也试过,问题是一样:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;

server {
listen       80;
server_name  *.yongshunfeng.com;

location /  {
proxy_pass http://127.0.0.1:8080;
proxy_set_header   Host    $host;
proxy_set_header   X-Real-IP   $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
}
}

server {
listen       80;
server_name  *.szysqkj.com;

location /  {
proxy_pass http://127.0.0.1:8081;
proxy_set_header   Host    $host;
proxy_set_header   X-Real-IP   $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
}
}

}



------解决思路----------------------


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;

    upstream 127.0.0.1 {
server 127.0.0.1:8080;
}
upstream web_server2 {
server 127.0.0.1:8081;
}

server {
listen       80;
server_name  *.yongshunfeng.com;

location /  {
proxy_pass http://web_server1;
proxy_set_header   Host    $host;
proxy_set_header   X-Real-IP   $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
break;
}
location / web_server2 {
root D:/project/order/target/order;
proxy_pass http://web_server2;
proxy_set_header   Host    $host;
proxy_set_header   X-Real-IP   $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
break;
}
}

}


 http://web_server2;的访问路径为127.0.0.1:80/web_server2
------解决思路----------------------
使用nginx ,安装不同的负载均衡算法,会在你配置好的ip服务器之间进行切换。

写一起看看。像这样的
upstream backserver{
ip_hash;
server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载)
server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大)
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器)
}