nginx学习(三)nginx 代理多个服务器——多个server方式

2018年2月28日15:11:37
  • A+
所属分类:Nginx
上一篇文章(http://blog.csdn.net/wild46cat/article/details/52840125)介绍了nginx的基本配置和使用方法,并且简单的介绍了一下如何利用nginx结合tomcat进行使用,达到反向代理的作用。现在我们要使用nginx达到这样的一个目的,能够代理多个服务器。
首先修改配置文件:

[plain] view plain copy

  1. #user  nobody;
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. #pid        logs/nginx.pid;
  7. events {
  8.     worker_connections  1024;
  9. }
  10. http {
  11.     include       mime.types;
  12.     default_type  application/octet-stream;
  13.     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  14.     #                  '$status $body_bytes_sent "$http_referer" '
  15.     #                  '"$http_user_agent" "$http_x_forwarded_for"';
  16.     #access_log  logs/access.log  main;
  17.     sendfile        on;
  18.     #tcp_nopush     on;
  19.     #keepalive_timeout  0;
  20.     keepalive_timeout  65;
  21.     #gzip  on;
  22.     server {
  23.         listen       9922;
  24.         server_name  firstProxyServer;
  25.         #charset koi8-r;
  26.         #access_log  logs/host.access.log  main;
  27.         #location / {
  28.            #root   html;
  29.             #index  index.html index.htm;
  30.         #}
  31.         location / {
  32.             proxy_pass http://localhost:8989;
  33.         }
  34.         #error_page  404              /404.html;
  35.         # redirect server error pages to the static page /50x.html
  36.         #
  37.         error_page   500 502 503 504  /50x.html;
  38.         location = /50x.html {
  39.             root   html;
  40.         }
  41.         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  42.         #
  43.         #location ~ \.php$ {
  44.         #    proxy_pass   http://127.0.0.1;
  45.         #}
  46.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  47.         #
  48.         #location ~ \.php$ {
  49.         #    root           html;
  50.         #    fastcgi_pass   127.0.0.1:9000;
  51.         #    fastcgi_index  index.php;
  52.         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  53.         #    include        fastcgi_params;
  54.         #}
  55.         # deny access to .htaccess files, if Apache's document root
  56.         # concurs with nginx's one
  57.         #
  58.         #location ~ /\.ht {
  59.         #    deny  all;
  60.         #}
  61.     }
  62.      server {
  63.         listen       9977;
  64.         server_name  secondProxyServer;
  65.         #charset koi8-r;
  66.         #access_log  logs/host.access.log  main;
  67.         #location / {
  68.            #root   html;
  69.             #index  index.html index.htm;
  70.         #}
  71.         location / {
  72.             proxy_pass http://localhost:8080;
  73.         }
  74.         #error_page  404              /404.html;
  75.         # redirect server error pages to the static page /50x.html
  76.         #
  77.         error_page   500 502 503 504  /50x.html;
  78.         location = /50x.html {
  79.             root   html;
  80.         }
  81.         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  82.         #
  83.         #location ~ \.php$ {
  84.         #    proxy_pass   http://127.0.0.1;
  85.         #}
  86.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  87.         #
  88.         #location ~ \.php$ {
  89.         #    root           html;
  90.         #    fastcgi_pass   127.0.0.1:9000;
  91.         #    fastcgi_index  index.php;
  92.         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  93.         #    include        fastcgi_params;
  94.         #}
  95.         # deny access to .htaccess files, if Apache's document root
  96.         # concurs with nginx's one
  97.         #
  98.         #location ~ /\.ht {
  99.         #    deny  all;
  100.         #}
  101.     }
  102.     # another virtual host using mix of IP-, name-, and port-based configuration
  103.     #
  104.     #server {
  105.     #    listen       8000;
  106.     #    listen       somename:8080;
  107.     #    server_name  somename  alias  another.alias;
  108.     #    location / {
  109.     #        root   html;
  110.     #        index  index.html index.htm;
  111.     #    }
  112.     #}
  113.     # HTTPS server
  114.     #
  115.     #server {
  116.     #    listen       443 ssl;
  117.     #    server_name  localhost;
  118.     #    ssl_certificate      cert.pem;
  119.     #    ssl_certificate_key  cert.key;
  120.     #    ssl_session_cache    shared:SSL:1m;
  121.     #    ssl_session_timeout  5m;
  122.     #    ssl_ciphers  HIGH:!aNULL:!MD5;
  123.     #    ssl_prefer_server_ciphers  on;
  124.     #    location / {
  125.     #        root   html;
  126.     #        index  index.html index.htm;
  127.     #    }
  128.     #}
  129. }

其中主要的是有两个server,每个server对应的被代理的服务器的不同。从而实现了nginx代理多个服务器的目的。

下面是两个服务server的配置:

[plain] view plain copy

  1. server {
  2.         listen       9922;
  3.         server_name  firstProxyServer;
  4.         #charset koi8-r;
  5.         #access_log  logs/host.access.log  main;
  6.         #location / {
  7.            #root   html;
  8.             #index  index.html index.htm;
  9.         #}
  10.         location / {
  11.             proxy_pass http://localhost:8989;
  12.         }
  13.         #error_page  404              /404.html;
  14.         # redirect server error pages to the static page /50x.html
  15.         #
  16.         error_page   500 502 503 504  /50x.html;
  17.         location = /50x.html {
  18.             root   html;
  19.         }
  20.         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  21.         #
  22.         #location ~ \.php$ {
  23.         #    proxy_pass   http://127.0.0.1;
  24.         #}
  25.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  26.         #
  27.         #location ~ \.php$ {
  28.         #    root           html;
  29.         #    fastcgi_pass   127.0.0.1:9000;
  30.         #    fastcgi_index  index.php;
  31.         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  32.         #    include        fastcgi_params;
  33.         #}
  34.         # deny access to .htaccess files, if Apache's document root
  35.         # concurs with nginx's one
  36.         #
  37.         #location ~ /\.ht {
  38.         #    deny  all;
  39.         #}
  40.     }
  41.      server {
  42.         listen       9977;
  43.         server_name  secondProxyServer;
  44.         #charset koi8-r;
  45.         #access_log  logs/host.access.log  main;
  46.         #location / {
  47.            #root   html;
  48.             #index  index.html index.htm;
  49.         #}
  50.         location / {
  51.             proxy_pass http://localhost:8080;
  52.         }
  53.         #error_page  404              /404.html;
  54.         # redirect server error pages to the static page /50x.html
  55.         #
  56.         error_page   500 502 503 504  /50x.html;
  57.         location = /50x.html {
  58.             root   html;
  59.         }
  60.         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  61.         #
  62.         #location ~ \.php$ {
  63.         #    proxy_pass   http://127.0.0.1;
  64.         #}
  65.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  66.         #
  67.         #location ~ \.php$ {
  68.         #    root           html;
  69.         #    fastcgi_pass   127.0.0.1:9000;
  70.         #    fastcgi_index  index.php;
  71.         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  72.         #    include        fastcgi_params;
  73.         #}
  74.         # deny access to .htaccess files, if Apache's document root
  75.         # concurs with nginx's one
  76.         #
  77.         #location ~ /\.ht {
  78.         #    deny  all;
  79.         #}
  80.     }

下面是测试的结果:

首先两个tomcat中部署两个服务器:
nginx学习(三)nginx 代理多个服务器——多个server方式
nginx学习(三)nginx 代理多个服务器——多个server方式
然后启动nginx。
cmd下:start nginx
分别访问这两个server:
http://localhost:9922/ngtt/
nginx学习(三)nginx 代理多个服务器——多个server方式
http://localhost:9977/testnnnn/
nginx学习(三)nginx 代理多个服务器——多个server方式
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: