发表于: 2019-11-09 23:29:32
1 906
今天完成的事:
1、设置mysql默认关闭空闲连接时间。
偶然发现之前遇到过的问题,点击web页面报错,再点击一次就能正常访问,原来是因为mysql默认是自动关闭空闲超过8小时的连接,而连接池不知道连接已经关闭,将关闭的连接提供使用就会报错。
因此设置C3P0定期检查关闭不使用的连接,不要让空闲连接超过8个小时就行了。
这里将mysql的默认关闭空闲连接时间改为一天,在my.ini文件下的mysqld标签下添加如下两个timeout即可。
在项目配置文件中的数据源配置中添加连接池的这两个设置,分别是定期检查空闲连接,定期关闭超过时间未使用的空闲连接。
2、将项目部署到服务器。
修改nginx的nginx.conf文件,添加动静分离、反向代理。修改Tomcat的server.xml文件,添加上传图片的虚拟路径。这里其实不需要添加虚拟路径了,使用nginx进行动静分离、反向代理后,8080端口隐藏,直接添加图片名称、后缀即可访问图片,如果加上虚拟路径,还需要在url上添加8080端口才能访问。
修改nginx的nginx.conf文件,设置nginx允许发布内容大小,log日志格式、位置,查看响应时间,动静分离、反向代理。
Tomcat虚拟路径。可以不设置。
中间有些问题都是配置细节出错,改正后就没问题了,接口都能访问,就是涉及到图片上传就很慢。。因为图片都是5M左右的。。
最后想试下直接访问图片,结果就出错了。报错403,开始我还没有仔细去看这个错误,就百度搜索图片无法访问的解决方法,后来才查了下403是什么报错,说是表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器,简单理解就是这里涉及到图片权限,因为linux系统下每个文件和文件夹都有权限,上传的图片没有直接通过名称后缀访问的权限,但是奇怪的是使用Tomcat的虚拟路径,添加上端口号就可以访问。。百度也没有找到原因。。
于是试着将一个图片权限修改,也无法访问,又把图片所在的文件夹权限修改,可以访问了,但是只能访问修改了权限的图片。。
修改图片权限为777,也就是最高权限。
文件夹生成时的权限。这里的文件夹是项目代码中自动判断有无而生成的。
修改文件夹权限为777。
查找上传文件的权限如何设置,没有找到答案,这里只能在使用脚本时,将上传的文件再设置权限了。。
但是还好找到了将文件夹下所有图片设置权限的方法,也就是说上传文件后,可以直接将文件夹下所有文件都统一设置权限,这样也方便了很多。
使用 chmod -R 644 /task3_image 命令,其中644是网上的得知的正好能通过路径访问的权限,但是这样的话文件夹也是644权限,试了下并不能访问,文件夹的权限还需要单独再设置高一些。所以这里可以直接一次性将权限设置高一些。
文件夹权限需755。但是问题是再次上传的图片权限还是640。。所以只能上传一次,就设置一次权限。。
再次上传的图片权限。
在解决权限问题时,试了下百度的方法,说是因为是Tomcat8,所以无法访问图片,修改Tomcat一个配置文件,结果没有成功,想重启Tomcat,还关闭不了,报错刚刚修改的Catalina文件停止服务什么的。。
重启Tomcat,关闭报错。
百度后得知从log文件夹中查看catalina日志,这里报错开启组件无法启动,所以Tomcat一直没法启动,自然关闭就会报错,但是我之前明明没有关闭过Tomcat。。
在下面的错误信息,报错存储图片的文件夹是无效的,因为想解决上传图片无法通过路径访问的权限问题,按照一些方法将文件夹删除了,但是因为项目代码中有检查文件夹,没有则创建文件夹,所以没有手动创建,没想到这次就没有创建。。可能跟linux的系统有些关系。。
创建了文件夹,Tomcat就没有问题了,设置权限后就能够访问图片。
遇到的问题:
1、图片上传服务器,涉及到图片权限,上传的图片没有直接通过名称后缀访问的权限,但是奇怪的是使用Tomcat的虚拟路径,添加上端口号就可以访问。。百度也没有找到原因。。
收获:
1、设置mysql默认关闭空闲连接时间。
2、项目部署服务器,熟悉了nginx动静分离、反向代理的配置,Tomcat虚拟路径的配置,加深了linux的文件权限认知。
3、回顾了任务三,进行总结。
评论