high-concurent-load
  • Introduction
  • CDN分流+ 加速
    • CDN工作原理
    • CDN核心概念
    • CDN缓存更新策略
    • CDN实战
    • DNS与CDN联系
  • DNS分流
    • DNS介绍
    • DNS配置实战
    • 域名服务模式介绍
  • LVS
    • LVS核心概念
    • LVS实战
  • Nginx教程
    • nginx常见问题汇总
    • nginx注册系统服务
    • nginx安装
    • nginx基础知识
      • nginx工作原理
      • nginx代理
      • nginx的location匹配规则
      • nginx的location匹配实战
      • nginx负载均衡
      • nginx配置expires
      • nginx配置中指令root和alias的区别浅析
    • nginx实战
      • nginx配置文件引用示例
      • nginx超时时间设置
      • nginx实现请求的负载均衡 + keepalived实现nginx的高可用
      • nginx 在已安装的情况下 安装http_image_filter_module
      • nginx配置单个端口对应多个server
      • nginx proxy_pass 路径匹配、URL 重写
      • nginx+tomcat实现动静分离
Powered by GitBook
On this page
  • 简单示例1
  • 简单示例2

Was this helpful?

  1. Nginx教程
  2. nginx实战

nginx配置单个端口对应多个server

简单示例1

upstream www.a.com {
    server localhost:8080;
}
upstream pan.a.com {
    server localhost:8081;
}
 
server {
    listen       80;
    server_name  www.a.com;
    location / {
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_pass http://www.a.com;
    }
}

server {
    listen       80;
    server_name  pan.a.com;
    location / {
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_pass http://pan.a.com;
    }
}

说明: 一个80端口 对应两个server www.a.com、 pan.a.com

简单示例2

#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 {    client_max_body_size 100M;
    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  tomcat8080_api {  
        server 127.0.0.1:8080  weight=1;
    }
    server {
        listen       80;
        server_name  后台接口域名;
        location / {
            proxy_pass http://tomcat8080_api;  
            proxy_redirect default;      
            #设置主机头和客户端真实地址,以便服务器获取客户端真实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;            
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
    upstream  tomcat8081_admin {  
        server 127.0.0.1:8081  weight=1;  
    }
    server {
        listen       80;
        server_name  管理员后台域名;
        location / {
            proxy_pass http://tomcat8081_admin;  
            proxy_redirect default;

        }
        #解决跨域
        location /apis  {                                # 自定义nginx接口前缀
            rewrite  ^/apis/(.*)$ /$1 break;            # 监听所有/apis前缀,是则转发后台api接口地址
            include  uwsgi_params;
            proxy_pass   http://127.0.0.1:8080;            # 后台api接口地址
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       80;
        server_name  管理员后台域名2;
        location / {
            proxy_pass http://tomcat8081_admin;  
            proxy_redirect default;
        }
        #解决跨域
        location /apis  {                                # 自定义nginx接口前缀
            rewrite  ^/apis/(.*)$ /$1 break;            # 监听所有/apis前缀,是则转发后台api接口地址
            include  uwsgi_params;
            proxy_pass   http://127.0.0.1:8080;            # 后台api接口地址
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       80;
        server_name  管理员后台域名3;
        location / {
            proxy_pass http://tomcat8081_admin;  
            proxy_redirect default;
        }
        #解决跨域
        location /apis  {                                # 自定义nginx接口前缀
            rewrite  ^/apis/(.*)$ /$1 break;            # 监听所有/apis前缀,是则转发后台api接口地址
            include  uwsgi_params;
            proxy_pass   http://127.0.0.1:8080;            # 后台api接口地址
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
    upstream  tomcat8082_shanghu {  
        server 127.0.0.1:8082  weight=1;
    }
    server {
        listen       80;
        server_name  商家后台域名;
        location / {
            proxy_pass http://tomcat8082_shanghu;
            proxy_redirect default;
        }
        #解决跨域
        location /apis  {                                # 自定义nginx接口前缀
            rewrite  ^/apis/(.*)$ /$1 break;            # 监听所有/apis前缀,是则转发后台api接口地址
            include  uwsgi_params;
            proxy_pass   http://127.0.0.1:8080;            # 后台api接口地址
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
Previousnginx 在已安装的情况下 安装http_image_filter_moduleNextnginx proxy_pass 路径匹配、URL 重写

Last updated 2 years ago

Was this helpful?