• Nginx安装与配置(Nginx服务器和Tomcat服务器是不同的服务器)


    1.【nginx-server】将nginx的源代码上传到nginx服务器之中,同时还需要上传一些其他的辅助组件

    2.【nginx-server】如果当前的主机上没有特定的编译环境,那么一定要在系统下载如下的环境包:

      • apt-get update

      • apt-get -y install make g++ gcc libpcre3 libpcrecpp* libpcre3-dev libssl-dev autoconf automake libtool libncurses5-dev libaio.dev

    3.【nginx-server】将所有的nginx源代码解压缩到"/usr/local/src"目录之中:

      • tar xzvf /srv/ftp/nginx-1.11.3.tar.gz -C /usr/local/src/

      • tar xzvf /srv/ftp/echo-nginx-module-0.59.tar.gz -C /usr/local/src/

      • tar xzvf /srv/ftp/nginx-upstream-fair-a18b409.tar.gz -C /usr/local/src/

      • tar xzvf /srv/ftp/ngx_cache_purge-2.3.tar.gz -C /usr/local/src/

    4.【nginx-server】除了要有源代码的支持包之外,还需要配置一个目录,该目录为编译后的Nginx的工作目录:

      • mkdir -p /usr/local/nginx/{logs,conf,fastcgi_temp,sbin,client_body_temp,proxy_temp,uwsgi_temp,scgi_temp}

    5.【nginx-server】进入到Nginx源代码所在的目录:cd /usr/local/src/nginx-1.11.3/

    6.【nginx-server】由于本次使用的Nginx里面需要为其追加一些组件,所以首先需要对Nginx编译进行一些配置:直接将下面这段代码粘贴过去

    ./configure --prefix=/usr/local/nginx/ 
    --sbin-path=/usr/local/nginx/sbin/  
    --with-http_ssl_module 
    --conf-path=/usr/local/nginx/conf/nginx.conf 
    --pid-path=/usr/local/nginx/logs/nginx.pid 
    --error-log-path=/usr/local/nginx/logs/error.log 
    --http-log-path=/usr/local/nginx/logs/access.log 
    --http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp 
    --http-client-body-temp-path=/usr/local/nginx/client_body_temp 
    --http-proxy-temp-path=/usr/local/nginx/proxy_temp 
    --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp 
    --http-scgi-temp-path=/usr/local/nginx/scgi_temp 
    --add-module=/usr/local/src/echo-nginx-module-0.59 
    --add-module=/usr/local/src/gnosek-nginx-upstream-fair-a18b409 
    --add-module=/usr/local/src/ngx_cache_purge-2.3 
    

    7.【nginx-server】配置完成之后对Nginx进行编译与安装操作:make && make install

    8.【nginx-server】当程序编译之后实际上就可以在"/usr/local/nginx"目录里面看见相关的内容,执行启动命令:

      • /usr/local/nginx/sbin/nginx

      此时Nginx实现的就是一个http服务器的代理机制,可以直接通过浏览器访问(其中的nginx-server为nginx服务器主机地址):http://nginx-server/

    Nginx整合Tomcat

    说明:本次的运行环境暂时不考虑多台Tomcat集群的配置问题,只考虑由Nginx实现一台单机的Tomcat的代理,如果要想使用Nginx实现代理配置,那么首先需要有一个正常的web项目

    1.假设现在部署的Tomcat主机IP地址为:192.168.195.147

      • 将"hello"项目打包成一个"hello.war"文件:mvn clean install package;

      • 将上传的hello.war文件部署到Tomcat之中:mv /srv/ftp/hello.war /usr/local/tomcat/webapps

      • 修改当前主机的Tomcat端口(因为Nginx与Tomcat都争抢了80端口,所以Tomcat要修改端口):

    vim /usr/local/tomcat/conf/server.xml 

     修改内容:<Connector port="8090" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" />

      • 启动Tomcat服务器:/usr/local/tomcat/bin/catalina.sh start

      • 浏览器访问地址:http://192.168.195.147:8090/hello

    2.此时的Nginx和Tomcat彼此之间没有任何的联系,所以必须修改nginx的配置文件:vim /usr/local/nginx.conf

    修改内容:
        location / {
    		proxy_pass http://192.168.195.147:8090/;
    		proxy_redirect off;
    		proxy_set_header Host   $host;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
    	}
    

    3.此时的Nginx服务已经正在运行中,所以这个时候如果不想先暂停Nginx再重新启动,则可以直接选择加载配置,但是正规的做法都是在加载之前进行配置检查:

      • 检查当前的nginx配置是否正确:/usr/local/nginx/sbin/nginx -t

      • 当检查通过之后重新加载新的配置:/usr/local/nginx/sbin/nginx -s reload

      此时的nginx就可以实现对本地的Tomcat的代理访问,通过在浏览器中输入Nginx执行:http://nginx主机地址/

    Nginx负载均衡

     说明:使用Nginx有两个主要的操作特点:

      • 特点一:可以在一台主机上实现多个域名服务的代理操作

      • 特点二:可以实现多台Tomcat的反向代理,实现负载均衡配置

    1.【tomcat-server-*】将需要发布的WEB项目分别进行打包,随后上传到不同的Tomcat主机上,并且修改server.xml配置文件,将通过*.war文件直接作为项目的发布;

      • 通过ftp工具上传打包完成的"hello.war"文件

      • 将此文件移动到Tomcat热部署目录:mv /srv/ftp/hello.war /usr/local/tomcat/webapps/

      • 如果要将此文件作为根目录的程序发布,则需要修改server.xml配置文件:vim /usr/local/tomcat/conf/server.xml

    <Context path="/" docBase="hello"/><!--hello要与上面打包的项目名称一致-->
    

      • 启动Tomcat服务:/usr/local/tomcat/bin/catalina.sh start

      • 打开浏览器访问站点首页:http://Tomcat主机地址/

    2.此时的实现同一个服务的Tomcat一共有三台主机,这样一来,对于这三台主机的代理控制操作就需要修改Nginx的配置文件实现:

      • 打开Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf

      • 追加Tomcat集群配置,首先在server之上追加有一个集群的配置处理项,定义所有主机:

    下面三个ip地址是三台tomcat主机的ip地址: 
    upstream tomcatcluster { server 192.168.195.138:80 weight=3 ; server 192.168.195.139:80 weight=1 ; server 192.168.195.140:80 weight=2 ; }

      • 在代理的位置上不要写具体的主机,写上配置的集群名称

    location / {
                    proxy_pass http://tomcatcluster;
                    proxy_redirect off;
                    proxy_set_header Host   $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
            }
    

    3.此时的Nginx服务已经正在运行中,所以这个时候如果不想先暂停Nginx再重新启动,则可以直接选择加载配置,但是正规的做法都是在加载之前进行配置检查:

      • 检查当前的nginx配置是否正确:/usr/local/nginx/sbin/nginx -t

      • 当检查通过之后重新加载新的配置:/usr/local/nginx/sbin/nginx -s reload

      此时的nginx就可以实现对本地的Tomcat的代理访问,通过在浏览器中输入Nginx执行:http://nginx主机地址/

    4.实际上这个时候也可以针对于集群的环境做一些动态的变更:

    upstream tomcatcluster{
       server 192.168.195.138:80 weight=3 down;(该主机不再提供具体服务)
         server 192.168.195.139:80 weight=1 ;
         server 192.168.195.140:80 weight=2 backup;(当主机忙不过来的时候,此主机提供服务)
    }
    

    此时就利用Nginx实现了一个基础的反向代理机制。

    数据文件缓存

    1.如果要想进行缓存的处理,那么一定要在Nginx主机上追加有一个缓存目录:mkdir -p /usr/data/nginx/{temp,cache}

    2.更新nginx.conf配置文件

    3.【tomcat-server-*】如果此时要想发现缓存的作用,那么最好的做法是更换当前的显示图片

      • scp /usr/local/tomcat/webapps/hello/images/xbwawa.png zookeeper-cluster-b:/usr/local/tomcat/webapps/hello/images/

      • scp /usr/local/tomcat/webapps/hello/images/xbwawa.png zookeeper-cluster-c:/usr/local/tomcat/webapps/hello/images/

    4.实际上此时由于已经存在了缓存的机制,所以图片是不会进行更新的,这个时候就需要手工清空缓存:

      • 浏览器主机地址:http://nginx-server/purge/images/xbwawa.png

      

  • 相关阅读:
    Mybatis
    spring2
    servlet
    MyBatis1
    Docker容器保存为镜像文件并发布到DockerHub上
    【JS】提取字符串中的分数,汇总后算出平均分,并与每个分数比较,输出
    CentOS下创建管理员权限用户
    Centos安装文件传输软件rz sz
    2022年的零日漏洞影响了哪些平台?
    关于渗透测试的优缺点,你知道吗?
  • 原文地址:https://www.cnblogs.com/wxl123/p/11147052.html
Copyright © 2020-2023  润新知