首先在centos7中安装tomcat
官网地址:https://tomcat.apache.org/download-70.cgi
安装nginx
可以参考我另一篇博客:http://www.ztinfo.xyz/archives/Centos7%E5%AE%89%E8%A3%85FastDFS
配置nginx转发到tomcat
server {
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
listen 80;
server_name ztinfo.xyz www.ztinfo.xyz; #监听的域名
client_max_body_size 1024m;
location /index {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/ticketms/index;# 转发的地址
}
}
遇到的问题idea打成war包所存在的问题
打成war包很简单,就是打war包之前项目必须在本地tomcat上运行一下,再打成war包,然后拷贝到centos7上的tomcat中的webapps目录,启动tomcat访问就不会出错啦!!!!记住一定要在本地运行下,不然会报错的。我就是没运行直接打包到Linux上的导致访问报错,弄了好久。真是一点也不能马虎!!!!!
解决nginx代理转发到tomcat静态资源访问不到原因
这个问题我找了好多博客,也看了好多,下面记录一下比较好的博客。
https://www.centos.bz/2018/03/nginx%E4%BB%A3%E7%90%86tomcat%E5%AF%BC%E8%87%B4css%E6%88%96js%E5%8A%A0%E8%BD%BD%E5%A4%B1%E8%B4%A5/
配置了一大堆,最终更改nginx.conf配置如下:
server {
listen 80;
server_name 192.168.188.128;
# Fdfs模块
location ~/group([0-9])/ {
ngx_fastdfs_module;
}
#location / {
#root html;
#index index.html index.htm;
#}
location /index {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080/ticketms/;
}
}
百度了好多解决办法:
1、有的说Linux中区分大小写,要把项目名称改成小写,静态资源才可以访问到,结果我就把war包改成小写,结果传上去还是不行。。
2、就是上边的博客所说的,因为配置了nginx代理,端口、ip有可能tomcat不能正确识别,要在nginx中配置那些主机信息。结果还是不行,但这是很重要的一定要配置。
3、也是上边博客上所说的配置tomcat中server.xml配置文件,在Host标签里加上博客上那个,其实我也不知道有啥用,哈哈。
4、也是我瞎搞,之前请求的路径一直是域名www.ztinfo.xyz/index,会经过DNS解析到我的主机80端口,nginx监听80端口并匹配到路由index会转发到我的tomcat服务器,感觉上是完美的,可是就是css样式出不来。结果我多加了一个/也就是请求路径变成www.ztinfo.xyz/index/,结果就访问到啦,并且样式也出来了,很神奇,我也不知道咋会事。。。哈哈哈,弄了一天结果就是请求路径的问题,特别神奇。