Nginx用来处理静态页面的请求,JSP交给Tomcat处理


  • 安装JDK

安装后,配置好JAVA_HOME和PATH

Mac查看JAVA_HOME路径的方法:/usr/libexec/java_home

  • 安装Tomcat

将安装包解压后,将目录配置为  CATALINA_HOME 环境变量,同时将bin目录添加到path中

一般我还会设置一下 tomcat-user.xml

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0"> <role rolename="tomcat"/>
<role rolename="role1"/> <role rolename="manager-gui"/>
<role rolename="admin-gui"/> <user username="admin" password="123456" roles="admin-gui,manager-gui,tomcat,role1"/> </tomcat-users>
<Host name="localhost"  appBase="/Users/sherry/WorkPath/tomcat/webApps"
unpackWARs="true" autoDeploy="true">

项目路径配置在server.xml中

当Nginx与Tomcat都安装好后,Ngnix监听80端口,Tomcat监听8080端口,用户请求先给80端口,Ngnix判断请求情况,决定是自己处理还是交给Tomcat处理

在Ngnix的conf目录下,建一个配置文件,如:tomcat.conf,配置如下:

user nobody;
worker_processes 4; events {
worker_connections 1024;
} http{
server{
listen 127.0.0.1:80;
server_name 127.0.0.1;
access_log logs/server1,access.log combined;
location ~\.(jsp|jspx|do)?$
{
root /Users/sherry/WorkPath/tomcat/webApps;
index index.jsp index.jspx index.html;
proxy_set_header X-Forwared-Host $host;
proxy_set_header X-Forwared-Server $host;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080;
}
}
}

启动Nginx nginx -c tomcat.conf  注意:这里就一定要指定配置文件进行启动了

然后就可以像是在访问Ngnix服务器一样访问tomcat上部署的工程了

这也就是Ngnix的反向代理

个人思考:原先部署在Tomcat上的程序,在jsp页面上,难免会去引入一些静态资源,如css、js、图片等,而现在肯定是要将这些静态资源放在Ngnix服务器上了

所以在实际部署的时候,静态资源文件和用到这些静态资源的jsp页面会不在同一个服务器上,这点要自己清楚。

Mac下配置环境变量的地方

/etc/paths

~/.bash_profile

Linux下配置环境变量的地方

/etc/profile

~/.bashrc

关于在哪里配置环境变量,只有知道环境变量有全局与当前用户之分即可,配置完后,注意 source 命令使其生效

05-17 06:18