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 命令使其生效