nginx 安装过程略过,新手可参考nginx安装教程 本次主要记录下nginx配置文件的设置过程

nginx 的 配置文件nginx.conf 可以配置多个端口

复制一个  server{   //code }  代码块  修改端口即可

如下配置文件中 nginx 启动后,可访问以下两个端口。

修改后配置文件后 ,访问  http://ip:10088  和 http://ip:10087 均可请求到nginx服务。

1、10088端口 配置反向代理,消除跨域问题。

在 server { //code} 中添加如下代码 则可以添加一个Tomcat 服务的反向代理。

原始访问tomcat 的路径 为 http://ip:8582/ncms  在 nginx 配置文件中加入以下代码 后,则可以通过 http://ip:10088/ncms  访问到 tomcat的服务。

这对于在一台服务器上发布多个tomcat时 统一的地址端口+不同项目,可以完美绕开跨域问题。

  1. location /ncms {
  2. proxy_pass http://127.0.0.1:8582;
  3. proxy_set_header Host $host:10088;
  4. proxy_set_header X-Real-IP $remote_addr;
  5. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  6. proxy_set_header Via "nginx";
  7. client_max_body_size 50m;
  8. }

  

2、10087端口 配置ip_hash模式的负载均衡,ip_hash可以绕开解决session共享的问题。

目前许多应用均为多节点部署。

例如:同一个java Web应用 部署了4个 Tomcat 服务,把tomcat原始访问地址+端口配置成如下模式, weight为权重。

以下配置模式表示  server 10.174.25.213:8582 weight=6 有60%的概率处理客户端请求。

  1. ip_hash表示 客户端的请求被分配到某一服务器上, 直到会话退出始终会请求该服务器,这样用户请求就不会再被分配到其他服务器导致 session 失效的问题。
  1. upstream tomcatsncms {
  2. server 10.174.25.213: weight=;
  3. server 10.174.25.45: weight=;
  4. server 10.174.25.48: weight=;
  5. server 10.174.25.49: weight=;
  6. ip_hash;
  7.  
  8. }

在 server{ //code }中添加如下代码 配置外网访问的端口, 这样 用户再次请求  http://ip+10087/ncms 时 实际会去被分配到后台部署的4台server中去 ,

值得一提的是如果某一台tomcat服务器宕机或者停机维护,都不会影响正常服务。

负载均衡不仅分流的前台用户的请求到不同的机器,而且如果某一个节点坏死会自动判断把请求分流到正常的tomcat服务器上。

  1. location /ncms {
  2. proxy_pass http://tomcatsncms;
  3. proxy_set_header Host $host:;
  4. proxy_set_header X-Real-IP $remote_addr;
  5. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  6. proxy_set_header Via "nginx";
  7. client_max_body_size 50m;
  8. }

附一份修改配置后完整的nginx.conf具体配置文件如下:

  1. #user nobody;
  2. worker_processes 1;
  3.  
  4. #error_log logs/error.log;
  5. #error_log logs/error.log notice;
  6. #error_log logs/error.log info;
  7.  
  8. #pid logs/nginx.pid;
  9.  
  10. events {
  11. worker_connections 1024;
  12. }
  13.  
  14. http {
  15. include mime.types;
  16. default_type application/octet-stream;
  17.  
  18. #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  19. # '$status $body_bytes_sent "$http_referer" '
  20. # '"$http_user_agent" "$http_x_forwarded_for"';
  21.  
  22. #access_log logs/access.log main;
  23.  
  24. sendfile on;
  25. #tcp_nopush on;
  26.  
  27. #keepalive_timeout 0;
  28. keepalive_timeout 65;
  29.  
  30. #gzip on;
  31.  
  32. upstream tomcatsncms {
  33. server 10.174.25.213:8582 weight=6;
  34. server 10.174.25.45:8582 weight=1;
  35. server 10.174.25.48:8582 weight=1;
  36. server 10.174.25.49:8582 weight=1;
  37. ip_hash;
  38.  
  39. }
  40. upstream tomcatsfir {
  41. server 10.174.25.213:8583 weight=6;
  42. server 10.174.25.45:8583 weight=1;
  43. server 10.174.25.48:8583 weight=1;
  44. server 10.174.25.49:8583 weight=1;
  45. ip_hash;
  46. }
  47.  
  48. server {
  49. listen 10087;
  50. server_name localhost;
  51.  
  52. #charset koi8-r;
  53.  
  54. #access_log logs/host.access.log main;
  55.  
  56. location / {
  57. root html;
  58. index index.html index.htm;
  59. }
  60. location /ncms {
  61. proxy_pass http://tomcatsncms;
  62. proxy_set_header Host $host:10087;
  63. proxy_set_header X-Real-IP $remote_addr;
  64. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  65. proxy_set_header Via "nginx";
  66. client_max_body_size 50m;
  67. }
  68. location /fir {
  69. proxy_pass http://tomcatsfir;
  70. proxy_set_header Host $host:10087;
  71. proxy_set_header X-Real-IP $remote_addr;
  72. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  73. proxy_set_header Via "nginx";
  74. client_max_body_size 50m;
  75. }
  76.  
  77. #error_page 404 /404.html;
  78.  
  79. # redirect server error pages to the static page /50x.html
  80. #
  81. error_page 500 502 503 504 /50x.html;
  82. location = /50x.html {
  83. root html;
  84. }
  85.  
  86. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  87. #
  88. #location ~ \.php$ {
  89. # proxy_pass http://127.0.0.1;
  90. #}
  91.  
  92. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  93. #
  94. #location ~ \.php$ {
  95. # root html;
  96. # fastcgi_pass 127.0.0.1:9000;
  97. # fastcgi_index index.php;
  98. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  99. # include fastcgi_params;
  100. #}
  101.  
  102. # deny access to .htaccess files, if Apache's document root
  103. # concurs with nginx's one
  104. #
  105. #location ~ /\.ht {
  106. # deny all;
  107. #}
  108. }
  109.  
  110. server {
  111. listen 10088;
  112. server_name localhost;
  113.  
  114. #charset koi8-r;
  115.  
  116. #access_log logs/host.access.log main;
  117.  
  118. location / {
  119. root html;
  120. index index.html index.htm;
  121. }
  122. location /ncms {
  123. proxy_pass http://127.0.0.1:8582;
  124. proxy_set_header Host $host:10088;
  125. proxy_set_header X-Real-IP $remote_addr;
  126. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  127. proxy_set_header Via "nginx";
  128. client_max_body_size 50m;
  129. }
  130. location /fir {
  131. proxy_pass http://127.0.0.1:8582;
  132. proxy_set_header Host $host:10088;
  133. proxy_set_header X-Real-IP $remote_addr;
  134. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  135. proxy_set_header Via "nginx";
  136. client_max_body_size 50m;
  137. }
  138. location /docs {
  139. proxy_pass http://127.0.0.1:8582;
  140. proxy_set_header Host $host:10088;
  141. proxy_set_header X-Real-IP $remote_addr;
  142. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  143. proxy_set_header Via "nginx";
  144. client_max_body_size 50m;
  145. }
  146.  
  147. #error_page 404 /404.html;
  148.  
  149. # redirect server error pages to the static page /50x.html
  150. #
  151. error_page 500 502 503 504 /50x.html;
  152. location = /50x.html {
  153. root html;
  154. }
  155.  
  156. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  157. #
  158. #location ~ \.php$ {
  159. # proxy_pass http://127.0.0.1;
  160. #}
  161.  
  162. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  163. #
  164. #location ~ \.php$ {
  165. # root html;
  166. # fastcgi_pass 127.0.0.1:9000;
  167. # fastcgi_index index.php;
  168. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  169. # include fastcgi_params;
  170. #}
  171.  
  172. # deny access to .htaccess files, if Apache's document root
  173. # concurs with nginx's one
  174. #
  175. #location ~ /\.ht {
  176. # deny all;
  177. #}
  178. }
  179.  
  180. # another virtual host using mix of IP-, name-, and port-based configuration
  181. #
  182. #server {
  183. # listen 8000;
  184. # listen somename:8080;
  185. # server_name somename alias another.alias;
  186.  
  187. # location / {
  188. # root html;
  189. # index index.html index.htm;
  190. # }
  191. #}
  192.  
  193. # HTTPS server
  194. #
  195. #server {
  196. # listen 443 ssl;
  197. # server_name localhost;
  198.  
  199. # ssl_certificate cert.pem;
  200. # ssl_certificate_key cert.key;
  201.  
  202. # ssl_session_cache shared:SSL:1m;
  203. # ssl_session_timeout 5m;
  204.  
  205. # ssl_ciphers HIGH:!aNULL:!MD5;
  206. # ssl_prefer_server_ciphers on;
  207.  
  208. # location / {
  209. # root html;
  210. # index index.html index.htm;
  211. # }
  212. #}
  213.  
  214. }

  

linux下nginx【反向代理】配置【负载均衡】配置的更多相关文章

  1. Linux 下 nginx反向代理与负载均衡

    前面几篇记录下nginx的基本运功,代理服务器的访问,这里来试验下nginx的反向代理. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给 ...

  2. Nginx反向代理实现负载均衡配置图解

    Nginx反向代理实现负载均衡配置图解 [导读] 负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章来操作. ...

  3. Nginx反向代理以及负载均衡配置

    项目地址:http://git.oschina.net/miki-long/nginx 前提:最近在研究nginx的用法,在windows上小试了一下,由于windows下不支持nginx缓存配置,所 ...

  4. Linux系统——Nginx反向代理与负载均衡

    集群集群是指一组(若干个)相互独立的计算机,利用高速通信网路组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运用各自服务的独立服务器.这些服务器之间可以彼此通信,协同向用户提供 ...

  5. nginx 反向代理实现负载均衡*配置实战

    重要点: 1配置反向代理多虚拟主机节点服务器 2经过反向代理后的节点服务器记录用户IP 3与反向代理配置相关的更多参数说明 4根据URL目录地址转发 (1)根据URL中的目录地址实现代理转发(动静分离 ...

  6. Nginx反向代理,负载均衡配置

    主配置文件:nginx.conf # For more information on configuration, see: # * Official English Documentation: h ...

  7. nginx反向代理与负载均衡

    一:nginx反向代理与负载均衡配置思路与用法 1.nginx反向代理:就是你去相亲时,媒婆就是这里的代理,让媒婆带你去见姑娘 2.nginx负载均衡:就是有很多的媒婆经过商量给你选出最适合你的姑娘, ...

  8. Linux 下 Nginx 反向代理 负载均衡配置

    转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52036350 上一篇分享了 Nginx + JDK + Tomcat + MySQ ...

  9. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  10. 【转】Nginx反向代理和负载均衡

    原文链接:http://www.cnblogs.com/shuoer/p/7820899.html Nginx反向代理和负载均衡 环境说明 由于我使用的是windows系统,所以我用虚拟机虚拟出来了3 ...

随机推荐

  1. Python GIL(Global Interpreter Lock)

    一,介绍 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native t ...

  2. Python档案袋(生成器、迭代器、队列 )

    生成器: 简单的生成器实现: #生成器,将for循环的变量传递到前面的式子进行处理 #生成的并不是一个列表,而是一个存在算数规则的对象 #不能通过下标直接取值,必须一个一个从头到尾取 va=(i*2 ...

  3. Javascript的内存泄漏分析

    作为程序员(更高大尚的称谓:研软件研发)的我们,无论是用Javascript,还是.net, java语言,肯定都遇到过内存泄漏的问题.只不过他们都有GC机制来帮助程序员完成内存回收的事情,如果你是C ...

  4. 我的秋招经验分享(已拿BAT头条网易滴滴)

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  5. 「拥抱开源, 又见 .NET」系列第三次线下活动简报

    「拥抱开源, 又见 .NET」 随着 .NET Core的发布和开源,.NET又重新回到人们的视野. 自2016年 .NET Core 1.0 发布以来,其强大的生命力让越来越多技术爱好者对她的未来满 ...

  6. layui选项卡同步问题

    下面这些代码是在有选项卡的情况下, 一个页面的状态修改时打开另一个选项卡, 另一个选项卡修改成功后,可以使你当前的选项卡状态实时更新 // 重载当前的页面的需要刷新的表格 table.reload(' ...

  7. Java基础练习4(内存管理)

    请根据如下程序代码,画出对应的内存管理图(不需要画方法区),并写出输出结果. 1. public class Cell{ int row; int col; public Cell(int row,i ...

  8. 移动端布局方案汇总&&原理解析

    阿里flexible布局 - 版本1.x 该布局于 2017年8月9日被2.0版本取代 实现原理 假设(UI稿750px宽) 设置viewport的 scale = 1/window.devicePi ...

  9. win10 DVWA下载安装配置(新手学渗透)

    电脑重装系统了,需要重新装一下渗透测试的学习环境DVWA,借此机会就跟大家讲一下DVWA的安装过程,因为不同的电脑配置.环境不同,在我的电脑上按照我这个安装教程是一次性就安装好了的.如果安装的时候遇到 ...

  10. .NET Framework和 .Net Core实现不一致的API之 `EmailAddressAttribute`

    .NET Framework和 .Net Core实现不一致的API之 EmailAddressAttribute Intro 现在我们的类库项目大多是 NETStandard2.0 项目,但是 ne ...