简单构建Nginx服务器与Tomcat服务器并实现Nginx转发(Linux)

    科技2024-05-08  85

    构建基本Nginx服务器


    1. 安装.编译nginx服务器

    先下载nginx源码包,然后安装pcre用来做正则匹配。 (使用wget下载,如果下载的很慢可以使用ftp服务器传输工具或者共享文件夹来上传到虚拟机,例如File Zilla Client )

    之后解压nginx源码压缩包,进入目录。

    编译nginx (编译过程中如果缺失组件包可以用yum下载)

    1. ./configure --prefix=/usr/local/nginx 2. make 3. make install

    之后就可以进入nginx.conf进行配置。

    2.配置nginx

    可以配置启动进程数,启动用户,连接数(默认1024),以及虚拟主机的配置。

    3.启动nginx

    1.先查看80端口是否被占用 netstat ntl |grep 80 2.再用-t看自己的配置是否正确

    /usr/local/nginx/sbin/nginx -t

    3.之后即可启动

    /usr/local/nginx/sbin/nginx

    之后就可以在虚拟主机上启动nginx服务,然后在本机上访问nginx服务了。如果不能访问,可以互相ping试试,如若ping的通再去考虑防火墙的问题。

    如果要升级版本,可以下载最新版本然后将第三步的make install替换成cp 新代码位置 源代码位置即可

    构建基本Tomcat服务器

    下载tomcat并且配置java环境

    因为tomact本身就是java语言写的,而且是为java服务的容器,自然需要先安装jdk环境。可以直接使用yum命令下载jdk,下载完直接java -version即可查看安装是否成功。

    (也可以使用ftp上传tar.gz包给服务器,直接使用wget的话解压缩会出错,原因可能是官网不允许直接wget下载。)

    启动tomcat

    启动前直接将解压完的文件夹放入/usr/local/tomcat文件夹里面,然后直接启动里面的startup.sh脚本即可(windows就启动.bat即可)

    可以通过

    ps -ef |grep java

    来查看启动的java进程

    也可以使用

    netstat ntl|grep 8080

    来查看tomcat启动端口

    Tomcat性能优化

    线上使用默认的tomcat配置,性能会很一般,具体可以优化以下方面:

    Linux内核的优化 服务器配置资源的优化 Tomcat参数优化 配置负载集群优化 (例如nginx)

    这里着重看Tomcat参数的优化:server.xml

    可以配置例如

    maxThreads: Tomcat启动最大的线程数,即同时处理的线程个数,默认为200. acceptCounts:当tomcat启动的线程数达到最大时,接受排队的请求个数,默认为100. (这一块有些类似线程池,可以看之前的那篇文章)

    catalina.sh 可以优化关于JVM的一些参数配置。

    catalina是tomcat为了隔离类加载区分的一个jar包,之后有空会写篇文章关于这一块。

    server.xml 在tomcat的Connector里面自定义的配置刚刚说的那些参数(包括编码在内)。

    注 Connector是tomcat架构里的一部分,每个container拥有多个Connector连接器。

    tomcat架构图

    启动多个Tomcat实例

    启动多个Tomcat实例相对简单,不像配置基础Redis集群和Mongo副本集和分片集,只要用命令cp分出多个下tomcat文件夹,然后配置各自的端口运行即可。

    Nginx转发多台Tomcat

    在虚拟机部署多台tomcat

    博主部署了两台,可以在本机上访问。

    配置Nginx并启动

    upstream tomcat{ server 192.168.0.106:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.0.106:8081 weight=1 max_fails=2 fail_timeout=30s; } server { listen 8088; server_name localhost ; location / { proxy_pass http://tomcat; } }

    简单实现均衡负载,也可以配置动静页面分离

    想起来之前写关于ribbon的demo的时候,也是这样的均衡负载,其实原理都是请求转发权重的分配,就像nginx可以配置权重(weight),ribbon也可以自定义负载均衡策略来实现不同需求情况下不同的负载均衡策略。

    Processed: 0.011, SQL: 8