首先安装JDK+Tomcat和配置好环境变量,部署第一个项目是比较简单,本文主要是针对部署第二个项目的时候出现的一些问题和解决办法进行叙述。可能解决办法有很多种,目的都是为了解决遇到的问题。我们公司一直以来采用的是Nginx+Tomcat进行项目部署。
第一个项目使用的是Tomcat的默认配置,即监听8080端口,Nginx配置监听80端口,当收请求时转发给Tomcat所在的8080端口。
下面是部署第二个项目:
Nginx配置:
我这里采用的是一个项目配置一个配置文件的方法,在Nginx的conf.d的文件夹中添加一个配置文件,可以赋值以前配置的nginx配置文件修改一些配置即可。
在server配置中修改监听的端口号listen字段第二个项目监听的是8082端口,再配置相应的location就可以了。下面是配置文件
server {
listen *:8082;
server_name 132.159.221.3;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
client_max_body_size 100m;
proxy_connect_timeout 1000s;
proxy_read_timeout 1000s;
proxy_send_timeout 1000s;
access_log logs/cgi_access.log;
error_log logs/cgi_error.log;
proxy_redirect off;
proxy_set_header Cookie $Http_cookie;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
#proxy_connect_timeout 90;
#proxy_send_timeout 90;
#proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 1024k;
location / {
alias /home/idc/erp_web/;#这里是访问静态资源的地址
}
location /erp {
proxy_pass http://localhost:8083/;#这里配置的是访问后台接口转发地址
}
location /login/ {
proxy_pass http://localhost:8083/login;#登录页面的地址
}
}
可以更具自己的需求配置多个location
Tomcat配置:
在配置第二个Tomcat配置文件时需要注意修改4处,有很多百度搜到的结果只修改了3处。导致会出现一些小bug。
首先是<Server port="8016" shutdown="SHUTDOWN">把原本的8006改为了现在的8016
其次是<Connector port="8083" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
然后是<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />
最后是在第三处中添加一个proxyPort="8082"属性。即:
<Connector port="8083" protocol="HTTP/1.1" proxyPort="8082" connectionTimeout="20000" redirectPort="8443" />
如果第四处不添加会导致当项目中出现重定向的时候Tomcat会默认去访问80端口,由于第一个项目配置的Nginx监听的80端口,所以导致了第二个项目重定向登录页面的时候报错,报错如下:
所以如果项目中出现重定向则注意修改。