当前位置:   article > 正文

nginx + tomcat实现动静分离_nginx tomcat动静分离

nginx tomcat动静分离

目录

引言

环境:

Nginx主机安装

Tomcat 配置

动静分离配置

Tomcat1 server 配置

Tomcat2 server 配置

Nginx server 配置

测试结果

 总结


引言

以LNMP为例,一个企业内部最基础的架构组成需要一个处理静态Web服务的页面,一个动态Web服务的页面和数据库,而我们实现了在Linux平台上,实现了Nginx + PHP 实现动静分离,而实际生产中往往一台nginx 需要“对应”多个动态处理的服务(及tomcat),所以如何将前端接收到的动态请求转交给后端多个tomcat处理,是我们此处研究的内容

环境:

两台Tomcat处理动态和一台Nginx处理静态

Nginx主机安装

  1. systemctl stop firewalld.service
  2. systemctl disable firewalld.service
  3. setenforce 0
  4. yum install -y pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
  5. useradd -M -s /sbin/nologin nginx
  6. cd /opt
  7. tar zxvf nginx-1.12.0.tar.gz -C /opt/
  8. cd nginx-1.12.0/
  9. ./configure \
  10. --prefix=/usr/local/nginx \
  11. --user=nginx \
  12. --group=nginx \
  13. --with-file-aio \
  14. --with-http_stub_status_module \
  15. --with-http_gzip_static_module \
  16. --with-http_flv_module \
  17. --with-http_ssl_module
  18. make && make install
  19. ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
  20. vim /lib/systemd/system/nginx.service
  21. [Unit]
  22. Description=nginx
  23. After=network.target
  24. [Service]
  25. Type=forking
  26. PIDFile =/usr/local/nginx/logs/nginx.pid
  27. ExecStart=/usr/local/nginx/sbin/nginx
  28. ExecReload=/bin/kill -s HUP $MAINPID
  29. ExecStop=/bin/kill -s QUIT $MAINPID
  30. PrivateTmp=true
  31. [Install]
  32. WantedBy=multi-user.target
  33. chmod 754 /lib/systemd/system/nginx.service
  34. systemctl start nginx.service
  35. systemctl enable nginx.service

Tomcat 配置

  1. vim /etc/profile.d/java.sh
  2. export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
  3. export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
  4. export PATH=$JAVA_HOME/bin:$PATH
  5. ###加载生效、查看版本
  6. rpm -ivh jdk-8u201-linux-x64.rpm
  7. source /etc/profile.d/java.sh
  8. java -version
  9. 3、安装启动 Tomcat
  10. ① 解压apache-tomcat软件包
  11. cd /opt
  12. tar zxvf apache-tomcat-9.0.16.tar.gz
  13. mv apache-tomcat-9.0.16 /usr/local/tomcat
  14. ##启动tomcat##
  15. #优化管理
  16. ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
  17. ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
  18. #开启服务
  19. startup.sh
  20. netstat -natp | grep 8080

动静分离配置

Tomcat1 server 配置

  1. mkdir /usr/local/tomcat/webapps/test
  2. vim /usr/local/tomcat/webapps/test/index.jsp #动态页面的配置
  3. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  4. <html>
  5. <head>
  6. <title>JSP test1 page</title>
  7. </head>
  8. <body>
  9. <% out.println("动态页面 1,http://www.test1.com");%>
  10. </body>
  11. </html>
  12. #添加虚拟主机配置
  13. vim /usr/local/tomcat/conf/server.xml
  14. ======72行新增
  15. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
  16. <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
  17. </Host>
  18. shutdown.sh
  19. startup.sh

Tomcat2 server 配置

  1. mkdir /usr/local/tomcat/webapps/test
  2. vim /usr/local/tomcat/webapps/test/index.jsp #动态页面的配置
  3. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  4. <html>
  5. <head>
  6. <title>JSP test2 page</title>
  7. </head>
  8. <body>
  9. <% out.println("动态页面 2,http://www.test2.com");%>
  10. </body>
  11. </html>
  12. #配置虚拟主机
  13. vim /usr/local/tomcat/conf/server.xml #修改配置文件
  14. =======72行新增
  15. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
  16. <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
  17. </Host>
  18. #重启服务
  19. shutdown.sh
  20. startup.sh

Nginx server 配置

  1. #准备静态页面
  2. echo '<html><body><h1>this is static</h1></body></html>' > /usr/local/nginx/html/index.html
  3. cd /usr/local/nginx/html/img/
  4. #上传一张图片到此目录下
  5. [root@localhost img]#ls
  6. cat.jpg
  7. vim /usr/local/nginx/conf/nginx.conf
  8. ......
  9. http {
  10. ......
  11. #gzip on;
  12. #配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大
  13. upstream tomcat_server {
  14. server 192.168.255.150:8080 weight=1;
  15. server 192.168.255.200:8080 weight=1;
  16. }
  17. server {
  18. listen 80;
  19. server_name www.ly.com;
  20. #charset koi8-r;
  21. #access_log logs/host.access.log main;
  22. #配置Nginx处理动态页面请求,将 .jsp 文件请求转发到Tomcat 服务器处理
  23. location ~ .*\.jsp$ {
  24. proxy_pass http://tomcat_server;
  25. #设置后端的 Web 服务器可以获取远程客户端的真实IP
  26. #设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),默认host的值为proxy_pass指令设置的主机名
  27. proxy_set_header HOST $host;
  28. #把$remote_addr赋值给X-Real-IP(自定义),来获取源IP
  29. proxy_set_header X-Real-IP $remote_addr;
  30. #在Nginx作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来
  31. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  32. }
  33. location / {
  34. root html;
  35. index index.html index.htm;
  36. }
  37. systemctl restart nginx.service

测试结果

  

 总结

在部署Tomcat的时候一定要记得rpm升级jdk的环境,如果不升级Tomcat可以正常启动,但是监听端口是起不来的,所以需要多多注意

还有在配置Tomcat主机文件的时候,需要注意语句的完整性,因为对于我们运维来说不是特别擅长的这部分

在配置动静分离,主要是配置我们的反向代理,同时要设置相同权重的Tomcat,实现负载均衡,在测试效果的时候,注意我们是从webapps后面的文件位置开始

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/217111
推荐阅读
相关标签
  

闽ICP备14008679号