• windows下使用Nginx


    Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务(邮件服务)。


    Tomcat集群

    1、下载tomcat,解压,复制一份,分别将文件夹重命名为tomcat1、tomcat2

    2、修改conf/server.xml中使用的端口号,避免端口冲突

    tomcat1的端口:

     

     

    tomcat1使用默认的端口即可。

    http那个connector是建立http连接的(http协议),有这个标签才能成为web服务器,才能和客户端连接上。

    nginx+tomcat,ajp连接用不上,完全可以注释掉。

    同一个tomcat进程内,可以共用一个端口,所以2个重定向使用的端口可以相同。

    tomcat2的端口:

    很多教程的重定向端口都没有改,因为一个小demo,也用不上重定向。

    3、用记事本打开bin/startup.bat,分别在开头加上

    set TITLE="tomcat1"
    set CATALINA_HOME="D:	omcat1"
    set TITLE="tomcat2"
    set CATALINA_HOME="D:	omcat2"

    TITLE是启动tomcat时弹出的windows的黑框框的窗口标题,这个无关紧要。

    CATALINA_HOME是tomcat的主目录的路径,启动tomcat时会检测startup.bat中是否设置了CATALINA_HOME,设置了就使用设置的,未设置就使用环境变量中的CATALINA_HOME,如果环境变量中也未设置,一闪而过启动失败。

    启动的是CATALINA_HOME指定的tomcat,不是你双击|调用哪个tomcat的startup.bat就启动哪个tomcat。

    只能写在startup.bat中,如果把值都写在环境变量CATALINA_HOME中,鬼知道你要启动哪个tomcat。

    startup.bat中设置的CATALINA_HOME优先级高于环境变量中的设置。

    4、将2个tomcat的conf/logging.properties中的控制台编码从UTF-8改为GBK,喜欢看乱码的可以不改。

    5、tomcat依赖jdk(将jsp转换为servelt要用到jdk),环境变量中需要设置JAVA_HOME,值是jdk主目录的路径。

    6、分别双击startup.bat启动2个tomcat,部署相同的项目,为了好观察效果,在tomcat1的项目的index.jsp的<body>中写tomcat1,另一个写tomcat2,浏览器中输入地址测试下项目是否都部署成功了。


    Nginx

    1、下载Nginx的windows版,解压

    2、修改conf/nginx.conf

     

     服务器列表中我给每个服务器(tomcat)加了权重,使用加权轮询,这样才方便看到效果。

    默认是轮询(不设置权重、或者权重都为1),将服务器列表排成一圈,根据服务器列表配置的前后顺序:

      nginx:tomcat1,你闲着不?

      tomcat1:我闲着

      nginx:那你处理下请求

      nginx:tomcat1,你闲着不?

      tomcat1:我正在处理请求

      nginx:tomcat2,你闲着不?

      tomcat2:我闲着

      nginx:那你来处理请求

    部署的项目小、处理速度快,又是本地机上,请求、响应时间只有几毫秒、十几毫秒,tomcat1基本都是闲着的,如果使用轮询,看到的一直都是tomcat1。

    分配不同的权重才看得到tomcat2。如果你部署一个很大的项目,或者单身多年点一次刷新只需几毫秒,也可以看到tomcat2。

    3、双击启动nginx.exe,验证nginx是否启动成功的2种方式:

    • 任务管理器看一下有没有nginx的2个进程
    • 浏览器地址栏输入127.0.0.1,看一下有没有nginx的首页或者tomcat的首页。如果没启动tomcat,看到的是nginx的首页;如果启动了tomcat,会将请求转发给tomcat,看到的是tomcat的首页

    如果nginx启动失败,一般是端口被占用了,nginx默认使用80端口,杀掉占用端口的进程,或者在conf/nginx.conf中修改端口号,如果修改了端口号,地址栏中要写上端口号。

    4、比方tomcat1的项目地址是 http://127.0.0.1:8080/test/ ,tomcat2的项目地址是 http://127.0.0.1:8081/test/

    在地址栏输入127.0.0.1:80/test  即访问部署的项目,这个127.0.0.1:80是nginx的ip、端口。

    端口号默认就是80,如果nginx使用80端口,地址栏可以不写端口号,如果不是80端口,必须写上端口号。





    多个tomcat启动|关闭的3种方式:

    1、双击.bat

    2、命令行,切换到单个tomcat所在目录,startup、shutdown,cd来cd去很麻烦

    3、将tomcat1的2个.bat分别重命名为startup1.bat、shutdown1.bat,tomcat2的分别重命名为startup2.bat、shutdown2.bat。

    Path环境变量中添加tomcat1、tomcat2的bin目录。

    命令行下startup1即运行startup.bat、启动tomcat1,shutdown1即运行shutdown1.bat、停止tomcat1,tomcat2也是同样的道理。命令行传入的是.bat的文件名。


    nginx启动|关闭的2种方式

    1、双击nginx.exe启动,任务管理器结束nginx的2个进程即关闭,修改nginx的配置需先结束2个进程、再双击nginx.exe启动。

    2、命令行cd到nginx的主目录,

    • start nginx   启动nginx
    • nginx  -s  reload   重新加载配置。修改nginx的配置后无需重启nginx,执行此命令即生效。
    • nginx -s  stop  快速停止nginx。这个是强制停止nginx,可能导致一些问题。
    • nginx -s  quit  完整有序地停止nginx。

    其实都是调用nginx.exe,传递的参数不同罢了。

    把nginx的主目录添加到Path环境变量中,不用cd到nginx主目录就可操作?

    理论上是这样,但实操时基本都是毛病,不是启动失败(命令无效),就是停止的时候报错:不能创建xx日志文件、不能找到xx日志文件.......

    cd到nginx的主目录进行操作,就不会出现这样的问题。

  • 相关阅读:
    String comparison is too slow in R language
    R语言之正则表达式
    Java日期时间(Date/Time)
    Java 字符串拆分(拆分字符串)
    vue总是报缩进、空格的错
    解决在Vue项目中时常因为代码缩进导致页面报错的问题
    Cordova+Vue快速搭建Hybrid App
    npm i和npm install的区别
    hybrid cordova+vue开发APP(一) 环境搭建
    vue-cli中理不清的assetsSubDirectory 和 assetsPublicPath
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/12346301.html
Copyright © 2020-2023  润新知