-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
70 lines (40 loc) · 22.5 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Jay's Blog</title>
<subtitle>不忘初心 方得始终</subtitle>
<link href="/atom.xml" rel="self"/>
<link href="http://blog.projay.com/"/>
<updated>2018-01-11T15:58:18.612Z</updated>
<id>http://blog.projay.com/</id>
<author>
<name>Jay</name>
</author>
<generator uri="http://hexo.io/">Hexo</generator>
<entry>
<title>Nginx+Tomcat+Redis实现负载均衡</title>
<link href="http://blog.projay.com/2018/01/11/Nginx-Tomcat-Redis%E5%AE%9E%E7%8E%B0%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/"/>
<id>http://blog.projay.com/2018/01/11/Nginx-Tomcat-Redis实现负载均衡/</id>
<published>2018-01-11T15:51:02.000Z</published>
<updated>2018-01-11T15:58:18.612Z</updated>
<content type="html"><![CDATA[<script src="/assets/js/APlayer.min.js"> </script><h3 id="1-负载均衡"><a href="#1-负载均衡" class="headerlink" title="1.负载均衡"></a>1.负载均衡</h3><hr><ol><li>安装配置JDK</li></ol><ul><li><a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html" target="_blank" rel="noopener">到Oracle官网下载JDK</a>,这里我是用的<a href="http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz" target="_blank" rel="noopener">jdk-8u151-linux-x64.tar.gz</a></li><li>使用winscp可视化工具上传jdk到服务器并解压<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">tar -xzvf jdk1.8.0_151</span><br></pre></td></tr></table></figure></li></ul><p><img src="http://upload-images.jianshu.io/upload_images/3014833-62d95e71a2a9c570.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="snipaste_20180111_145016.png"></p><ul><li>配置JDK环境变量,这里也贴出了Tomcat的配置<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/profile</span><br></pre></td></tr></table></figure></li></ul><p><img src="https://note.youdao.com/yws/api/personal/file/D2FBA8637B914BAA81A8C1C05E852C24?method=download&shareKey=2b0e95bb85b7845c3748a3c35728fbad" alt="image"><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">source /etc/profile 更新后重新生效</span><br></pre></td></tr></table></figure></p><ol><li>安装配置Tomcat<br>到<a href="https://tomcat.apache.org/download-80.cgi" target="_blank" rel="noopener">Tomcat官网</a>下载,这里我分别下载了Tomcat8 和 Tomcat9,然后上传并解压<img src="https://note.youdao.com/yws/api/personal/file/4220DEFCEF6647CD8403324763C5BE66?method=download&shareKey=a8b32044ff6809888c26a87b5915e442" alt="image"></li></ol><p>然后因为配置负载均衡两个Tomcat的端口肯定不能一样,所以需要配置server.xml<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /你的Tomcat路径/conf/server.xml</span><br></pre></td></tr></table></figure></p><p>==分别修改启动端口,关闭端口和AJP端口==,转发端口不用改,修改后记得重启</p><ol><li>配置Nginx</li></ol><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br></pre></td><td class="code"><pre><span class="line"> #下面是server虚拟主机的配置</span><br><span class="line"> 48 upstream mytomcats {</span><br><span class="line"> 49 server 127.0.0.1:8080 weight=2 max_fails=2 fail_timeout=30s;</span><br><span class="line"> 50 server 127.0.0.1:8000 weight=1 max_fails=2 fail_timeout=30s;++</span><br><span class="line"> 51 }</span><br><span class="line"> 52 server</span><br><span class="line"> 53 {</span><br><span class="line"> 54 listen 80;#监听端口</span><br><span class="line"> 55 server_name localhost;#域名</span><br><span class="line"> 56 index index.html index.htm index.php;</span><br><span class="line"> 57 root /usr/local/nginx/html;#站点目录</span><br><span class="line"> 58 location ~ .*\.(php|php5)?$</span><br><span class="line"> 59 {</span><br><span class="line"> 60 #fastcgi_pass unix:/tmp/php-cgi.sock;</span><br><span class="line"> 61 fastcgi_pass 127.0.0.1:9000;</span><br><span class="line"> 62 fastcgi_index index.php;</span><br><span class="line"> 63 include fastcgi.conf;</span><br><span class="line"> 64 }</span><br><span class="line"> 65 #配置关于css和js静态文件的加载</span><br><span class="line"> 66 location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {</span><br><span class="line"> 67 proxy_pass http://mytomcats;</span><br><span class="line"> 68 }</span><br><span class="line"> 69 #--------------------------</span><br><span class="line"> 70 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$</span><br><span class="line"> 71 {</span><br><span class="line"> 72 expires 30d;</span><br><span class="line"> 73 # access_log off;</span><br><span class="line"> 74 }</span><br><span class="line"> 75 location ~ .*\.(js|css)?$</span><br><span class="line"> 76 {</span><br><span class="line"> 77 expires 15d;</span><br><span class="line"> 78 # access_log off;</span><br><span class="line"> 79 }</span><br><span class="line"> 80 access_log off;</span><br><span class="line"> 81 location / {</span><br><span class="line"> 82 </span><br><span class="line"> 83 proxy_pass http://mytomcats;</span><br><span class="line"> 84 </span><br><span class="line"> 85 proxy_redirect off;</span><br><span class="line"> 86 </span><br><span class="line"> 87 proxy_set_header Host $host;</span><br><span class="line"> 88 </span><br><span class="line"> 89 proxy_set_header X-Real-IP $remote_addr;</span><br><span class="line"> 90 </span><br><span class="line"> 91 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</span><br><span class="line"> 92 </span><br><span class="line"> 93 client_max_body_size 10m;</span><br><span class="line"> 94 </span><br><span class="line"> 95 client_body_buffer_size 128k;</span><br><span class="line"> 96 </span><br><span class="line"> 97 proxy_connect_timeout 90;</span><br><span class="line"> 98 </span><br><span class="line"> 99 proxy_send_timeout 90;</span><br><span class="line">100 </span><br><span class="line">101 proxy_read_timeout 90;</span><br><span class="line">102 </span><br><span class="line">103 proxy_buffer_size 4k;</span><br><span class="line">104 </span><br><span class="line">105 proxy_buffers 4 32k;</span><br><span class="line">106 </span><br><span class="line">107 proxy_busy_buffers_size 64k;</span><br><span class="line">108 </span><br><span class="line">109 proxy_temp_file_write_size 64k;</span><br><span class="line">110 }</span><br><span class="line">111 }</span><br><span class="line">112 }</span><br></pre></td></tr></table></figure><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">重启nginx</span><br><span class="line">vim nginx/sbin</span><br><span class="line">./nginx -s reload</span><br></pre></td></tr></table></figure><p>4.测试</p><p>==建议nginx使用80端口,== Tomcat端口无所谓,我是使用的8080和8000<br><a href="http://39.108.168.106/" target="_blank" rel="noopener">可以访问我的服务器ip</a>刷新后可以发现nginx将不同的请求反向代理到不同的tomcat,则负载均衡配置完成</p><h3 id="2-配置Tomcat打开JMS使用JConsole连接Tomcat"><a href="#2-配置Tomcat打开JMS使用JConsole连接Tomcat" class="headerlink" title="2.配置Tomcat打开JMS使用JConsole连接Tomcat"></a>2.配置Tomcat打开JMS使用JConsole连接Tomcat</h3><hr><ol><li>修改tomcat_home/bin/catalina.sh 文件,搜索 Execute The Requested Command 字样,在其上,添加</li></ol><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">CATALINA_OPTS="</span><br><span class="line">$CATALINA_OPTS -Dcom.sun.management.jmxremote </span><br><span class="line">-Djava.rmi.server.hostname=[服务器ip]</span><br><span class="line">-Dcom.sun.management.jmxremote.port=[端口] 注意不要和其他的端口冲突,我这里是用的8888</span><br><span class="line">-Dcom.sun.management.jmxremote.ssl=false</span><br><span class="line">-Dcom.sun.management.jmxremote.authenticate=false"</span><br></pre></td></tr></table></figure><p>2.由于jmx的安全设置,需要找到/jdk/jre/lib/managment/jmxremote.password.template,cp此文件并重命名为jmxremote.password,找到最后两行去掉注释,保存重启tomcat<br><img src="https://note.youdao.com/yws/api/personal/file/34B884FB210D433BA31F9B71E5A32A4E?method=download&shareKey=bccb18f395f249c95884f91f7a789c33" alt="image"><br>3.在本机打开JDK下的bin目录下的jconsole.exe文件,按照如下配置,选择不安全连接,即可远程监控tomcat<br><img src="https://note.youdao.com/yws/api/personal/file/895D390BB2904B659CB235DA341A48FC?method=download&shareKey=732f825b663cab3468a4a70c30eb5016" alt="image"><br><img src="https://note.youdao.com/yws/api/personal/file/0105818856DE46E1BD2CEF05EBD63D62?method=download&shareKey=87aa374ed266acc6b62b9987e4b48774" alt="image"></p><h3 id="3-session共享问题"><a href="#3-session共享问题" class="headerlink" title="3.session共享问题"></a>3.session共享问题</h3><hr><p>1.使用iphash<br>nginx中的ip_hash技术能够将某个ip的请求定向到同一台后端,这样一来这个ip下的某个客户端和某个后端就能建立起稳固的session,ip_hash是在upstream配置中定义的:<br><img src="https://note.youdao.com/yws/api/personal/file/278382A29BC04B3698BE84533CB935F3?method=download&shareKey=02f92288ca37226090638c72fb106689" alt="image"></p>]]></content>
<summary type="html">
<script src="/assets/js/APlayer.min.js"> </script><h3 id="1-负载均衡"><a href="#1-负载均衡" class="headerlink" title="1.负载均衡"></a>1.负载均衡</h3><hr>
<o
</summary>
<category term="Linux" scheme="http://blog.projay.com/categories/Linux/"/>
<category term="Nginx" scheme="http://blog.projay.com/tags/Nginx/"/>
</entry>
<entry>
<title>阿里云Centos7下Nginx的安装和配置</title>
<link href="http://blog.projay.com/2017/12/24/%E9%98%BF%E9%87%8C%E4%BA%91Centos7%E4%B8%8BNginx%E7%9A%84%E6%90%AD%E5%BB%BA%E4%B8%8E%E9%85%8D%E7%BD%AE/"/>
<id>http://blog.projay.com/2017/12/24/阿里云Centos7下Nginx的搭建与配置/</id>
<published>2017-12-24T15:23:00.000Z</published>
<updated>2017-12-24T15:28:10.958Z</updated>
<content type="html"><![CDATA[<script src="/assets/js/APlayer.min.js"> </script><h4 id="安装Nginx相关环境"><a href="#安装Nginx相关环境" class="headerlink" title="安装Nginx相关环境"></a>安装Nginx相关环境</h4><p>为了保证正常安装Nginx和安装后Nginx的正常使用,在安装前,需要安装如下软件</p><ol><li><p>GCC编译器<br>GCC(GNU Compiler Collection)可用于编译C/C++语言程序,我们下载的Nginx不是可以直接在Linux中可以运行的二进制程序(虽然1.2.x版本已经在某些操作系统上提供相应的二进制包了,但是这里学习最广泛使用的方式,将源码编译成二进制程序进行使用)<br>通过下面两句命令来安装GCC编译器</p><blockquote><p><code>yum install -y gcc</code><br><code>yum install -y gcc-c++</code></p></blockquote></li><li><p>PCRE库<br>PCRE(Perl Compatible Regular Expressions,Perl兼容正则表达式)是由Philip Hazel开发的函数库,这个库支持正则表达式。如果我们在配置文件nginx.conf中使用了正则表达式,就必须装上PCRE库,因为Nginx的HTTP模块需要靠PCRE库来解析正则表达式,如果你认定自己不会使用正则表达式,那么可以不装,这里建议装上,以防以后需要使用到正则表达式<br>命令如下</p><blockquote><p><code>yum install -y pcre pcre-devel</code><br>pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译Nginx所必须使用的。</p></blockquote></li><li><p>zlib库<br>zlib库用于对HTTP包的内容做gzip格式的压缩,来减少网络流量传送,当我们在nginx.conf中配置了gzip on,并指定了某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,就必须在编译时将zlib库编译进Nginx<br>命令如下</p><blockquote><p><code>yum install -y zlib zlib-devel</code><br>zlib是直接使用的库,zlib-devel是二次开发所需要的库。</p></blockquote></li><li><p>OpenSSL开发库<br>如果想让Nginx在SSL协议上传送HTTP,也就是所谓的HTTPS,就需要装上OpenSSL,此外,如果我们还想使用MD5、SHA1等散列函数,那也必须安装上这个开发库<br>命令如下</p><blockquote><p><code>yum install -y openssl openssl-devel</code></p></blockquote></li><li><p>注意<br>也可以一次性安装gcc,zlib,openssl环境</p><blockquote><p><code>yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel</code></p></blockquote></li></ol><h4 id="安装Nginx"><a href="#安装Nginx" class="headerlink" title="安装Nginx"></a>安装Nginx</h4><p> 下载nginx:</p><blockquote><p><code>wget http://nginx.org/download/nginx-1.6.2.tar.gz</code></p></blockquote><p> 解压安装包: </p><blockquote><p><code>tar zxvf nginx-1.6.2.tar.gz</code></p></blockquote><p> 进入安装包目录:cd</p><blockquote><p><code>nginx-1.6.2</code></p></blockquote><p> 编译安装:</p><blockquote><p><code>./configure,默认地址 /usr/local/nginx</code></p></blockquote><p> 安装:</p><blockquote><p><code>make && make install</code></p></blockquote><p> Nginx操作:</p><blockquote><p><code>cd /usr/local/nginx/sbin</code><br>启动nginx<br><code>./nginx</code><br>重新载入配置<br><code>./nginx -s reload</code><br>重新启动Nginx<br><code>./nginx -s reopen</code><br>停止Nginx<br><code>./nginx -s stop</code></p></blockquote><p>启动完Nginx后,你就可以通过主机IP来访问nginx了,出现下面这个界面表示Nginx就搞定了(我对默认界面进行了一些修改),如果不能访问,可以查询一下自己防火墙的配置,是否开放了Web服务所需要的端口,如果你的服务器上在腾讯云、阿里云或者某个云上的,可以看看自己为该服务器配置的安全策略是否允许Web服务所需要的端口可以接收和发送相应的数据</p><p>可以看一下CentOS7中,配置防火墙的命令</p><blockquote><p>允许相应的端口<br><code>firewall-cmd --zone=public --add-port=80/tcp --permanent</code><br><code>firewall-cmd --zone=public --add-port=3306/tcp --permanent</code><br><code>firewall-cmd --zone=public --add-port=9000/tcp --permanent</code><br>重新载入配置<br><code>firewall-cmd --reload</code></p></blockquote><p><img src="http://upload-images.jianshu.io/upload_images/2993907-27b8cf62d6b5a531.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="image.png"></p><h4 id="配置Nginx自启动"><a href="#配置Nginx自启动" class="headerlink" title="配置Nginx自启动"></a>配置Nginx自启动</h4><p>至此,安装完成!但是每次要进行到相应的路径来启动Nginx太麻烦了,这里可以在etc/init.d目录下创建一个启动脚本,通过这个脚本来启动Nginx,这样启动Nginx会方便很多</p><blockquote><p>在etc/init.d目录下创建nginx脚本<br><code>vim /etc/init.d/nginx</code></p></blockquote><p>然后将下面内容复制并保存到这个nginx脚本文件中</p><blockquote><p><code>#!/bin/sh</code><br><code>#</code><br><code># nginx - this script starts and stops the nginx daemin</code><br><code>#</code><br><code># chkconfig: - 85 15</code><br><code># description: Nginx is an HTTP(S) server, HTTP(S) reverse \</code><br><code># proxy and IMAP/POP3 proxy server</code><br><code># processname: nginx</code><br><code># config: /usr/local/nginx/conf/nginx.conf</code><br><code># pidfile: /usr/local/nginx/logs/nginx.pid</code><br><code># Source function library.</code><br><code>. /etc/rc.d/init.d/functions</code><br><code># Source networking configuration.</code><br><code>. /etc/sysconfig/network</code><br><code># Check that networking is up.</code><br><code>[ "$NETWORKING" = "no" ] && exit 0</code><br><code>nginx="/usr/local/nginx/sbin/nginx"</code><br><code>prog=$(basename $nginx)</code><br><code>NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"</code><br><code>lockfile=/var/lock/subsys/nginx</code><br><code>start() {</code><br><code>[ -x $nginx ] || exit 5</code><br><code>[ -f $NGINX_CONF_FILE ] || exit 6</code><br><code>echo -n $"Starting $prog: "</code><br><code>daemon $nginx -c $NGINX_CONF_FILE</code><br><code>retval=$?</code><br><code>echo</code><br><code>[ $retval -eq 0 ] && touch $lockfile</code><br><code>return $retval</code><br><code>}</code><br><code>stop() {</code><br><code>echo -n $"Stopping $prog: "</code><br><code>killproc $prog -QUIT</code><br><code>retval=$?</code><br><code>echo</code><br><code>[ $retval -eq 0 ] && rm -f $lockfile</code><br><code>return $retval</code><br><code>}</code><br><code>restart() {</code><br><code>configtest || return $?</code><br><code>stop</code><br><code>start</code><br><code>}</code><br><code>reload() {</code><br><code>configtest || return $?</code><br><code>echo -n $"Reloading $prog: "</code><br><code>killproc $nginx -HUP</code><br><code>RETVAL=$?</code><br><code>echo</code><br><code>}</code><br><code>force_reload() {</code><br><code>restart</code><br><code>}</code><br><code>configtest() {</code><br><code>$nginx -t -c $NGINX_CONF_FILE</code><br><code>}</code><br><code>rh_status() {</code><br><code>status $prog</code><br><code>}</code><br><code>rh_status_q() {</code><br><code>rh_status >/dev/null 2>&1</code><br><code>}</code><br><code>case "$1" in</code><br><code>start)</code><br><code>rh_status_q && exit 0</code><br><code>$1</code><br><code>;;</code><br><code>stop</code><br><code>rh_status_q || exit 0</code><br><code>$1</code><br><code>;;</code><br><code>restart|configtest)</code><br><code>$1</code><br><code>;;</code><br><code>reload)</code><br><code>rh_status_q || exit 7</code><br><code>$1</code><br><code>;;</code><br><code>force-reload)</code><br><code>force_reload</code><br><code>;;</code><br><code>status)</code><br><code>rh_status</code><br><code>;;</code><br><code>condrestart|try-restart)</code><br><code>rh_status_q || exit 0</code><br><code>;;</code><br><code>*)</code><br><code>echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"</code><br><code>exit 2</code><br><code>esac</code></p></blockquote><p>接着为这个脚本添加执行权限</p><blockquote><p> <code>chmod +x /etc/init.d/nginx</code></p></blockquote><p>并将Nginx添加到系统自启动组中</p><blockquote><p><code>chkconfig --add /etc/init.d/nginx</code></p></blockquote><p>最后将开启自启动</p><blockquote><p><code>chkconfig nginx on</code></p></blockquote><p>经过上面的配置后,就可以通过下面的命令来操作nginx了</p><blockquote><p><code>service nginx reload</code> 重新加载配置<br><code>service nginx start</code> 启动Nginx</p></blockquote>]]></content>
<summary type="html">
<script src="/assets/js/APlayer.min.js"> </script><h4 id="安装Nginx相关环境"><a href="#安装Nginx相关环境" class="headerlink" title="安装Nginx相关环境"></a>安装N
</summary>
<category term="Linux" scheme="http://blog.projay.com/categories/Linux/"/>
<category term="Nginx" scheme="http://blog.projay.com/tags/Nginx/"/>
</entry>
</feed>