鍍金池/ 問答/Linux/ 兩個(gè)javaweb項(xiàng)目,如何讓nginx的反向代理,根據(jù)不同的域名對(duì)應(yīng)到不同的項(xiàng)

兩個(gè)javaweb項(xiàng)目,如何讓nginx的反向代理,根據(jù)不同的域名對(duì)應(yīng)到不同的項(xiàng)目?

是這樣的,我的阿里云的centos系統(tǒng)上,裝著tomcat,剛裝了一個(gè)nginx,目前在tomcat里跑著一個(gè)項(xiàng)目A(對(duì)應(yīng)的域名是http://louqibang.com),我想把項(xiàng)目B(對(duì)應(yīng)的域名是http://e-house.cn)也放到tomcat里,然后nginx做反向代理,兩個(gè)域名已經(jīng)都指向了服務(wù)器

nginx的nginx.conf里面不知道怎么配置了,網(wǎng)上查的也亂七八糟的,是不是需要安裝兩個(gè)tomcat?

這樣配置報(bào)錯(cuò)

[root@iZf5e45q7q4z7tZ nginx-1.6.2]# /usr/local/nginx/sbin/nginx -t
nginx: [emerg] invalid host in upstream "localhost:80/ehouse" in /usr/local/nginx/conf/nginx.conf:94
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed


#user  nobody;
user www www;
worker_processes  1;

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

#pid        logs/nginx.pid;
error_log /usr/local/nginx/logs/nginx_error.log crit; #日志位置和日志級(jí)別
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
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';
  
#charset gb2312;
     
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
     
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on; 
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
 
  #limit_zone crawler $binary_remote_addr 10m;
 #下面是server虛擬主機(jī)的配置
 upstream louqibang.com{
            server localhost:80;
       
    }
 server  {
    listen       80;
    server_name  louqibang.com;
    charset utf-8;
    large_client_header_buffers 4 16k;
    client_max_body_size 300m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 1;
    proxy_read_timeout 1;
    proxy_send_timeout 1;
    proxy_buffer_size 64k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;


    location ~ \.(pdf|apk|txt)$ {
            root /data/www/resources/xxx;
            access_log off;
            expires 24h;
    }
    
    
    location / {
        index  index.html index.jsp;
        #這里的proxy_pass轉(zhuǎn)發(fā)的是upstream的名字aaa.com
        proxy_pass  http://louqibang.com;
      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    100m;
        access_log off;
    }
  }
  upstream e-house.cn{
            server localhost:80/ehouse;
       
    }
 server  {
    listen       80;
    server_name  e-house.cn;
    charset utf-8;
    large_client_header_buffers 4 16k;
    client_max_body_size 300m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 1;
    proxy_read_timeout 1;
    proxy_send_timeout 1;
    proxy_buffer_size 64k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;


    location ~ \.(pdf|apk|txt)$ {
            root /data/www/resources/xxx;
            access_log off;
            expires 24h;
    }
    
    
    location / {
        index  index.html index.jsp;
        #這里的proxy_pass轉(zhuǎn)發(fā)的是upstream的名字aaa.com
        proxy_pass  http://e-house.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;
        client_max_body_size    100m;
        access_log off;
    }
  }

}
回答
編輯回答
孤慣
  1. 不需要安裝兩個(gè)Tomcat
  2. 項(xiàng)目A和項(xiàng)目B在同一個(gè)Tomcat里用不同的端口就行了
  3. nginx.conf監(jiān)聽80端口,當(dāng)訪問的的是http://louqibang.com時(shí),代理到項(xiàng)目A。當(dāng)訪問的是:http://e-house.cn,代理到項(xiàng)目B
  4. 至于如何配置,可參考慕課網(wǎng):http://www.imooc.com/learn/947,你看5-15和5-18就直到怎么配置了。
2017年5月25日 02:29
編輯回答
別瞎鬧
server {
    listen 80;
    location /a/ {
        proxy_pass http://louqibang.com/
    }
    location /b/ {
        proxy_pass http://e-house.cn/
    }
}

這樣你訪問你那臺(tái)機(jī)器,假設(shè)域名為www.a.com
則訪問http://www.a.com/a/path1則為...://louqibang.com/path1

2018年4月9日 19:46