1 商品类目选择
1.1Service层
easyUi的异步tree控件
树控件读取URL。子节点的加载依赖于父节点的状态。当展开一个封闭的节点,如果节点没有加载子节点,它将会把节点id的值作为http请求参数并命名为'id',通过URL发送到服务器上面检索子节点。
找Bug小技巧之file search
2.2 Controller层
功能:接收页面请求的参数,名为 id。调用service查询分类列表,返回json格式的数据(列表)。需要使用@ResponseBody注解。
2 上传图片
2.1 图片保存的位置
2.1.1 集群环境
在集群环境中,用户上传图片到一台tomcat,再次访问图片时连接到的是另外一台tomcat,此时访问不到图片。
这种情况,会出现用户有时刷新页面能看到图片,有时又看不到图片。
解决的办法:将图片放在一台专门的服务器上。
2.1.2 nginx安装
2.1.2.1 nginx安装环境
gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:
yum install gcc-c++
PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
2.1.2.2 编译安装
将nginx-1.8.0.tar.gz拷贝至linux服务器。
解压:
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
1、configure
./configure --help查询详细参数(参考本教程附录部分:nginx编译参数)
参数设置如下:
---直接全部复制运行
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
2、编译安装
make
make install
安装成功查看安装目录 :
3、启动nginx
cd /usr/local/nginx/sbin/
./nginx
查询nginx进程:
15098是nginx主进程的进程id,15099是nginx工作进程的进程id
注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(--conf-path= 指向配置文件(nginx.conf))
4、停止nginx
方式1 快速停止:
cd /usr/local/nginx/sbin
./nginx -s stop
此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
方式2 完整停止(建议使用):
cd /usr/local/nginx/sbin
./nginx -s quit
此方式停止步骤是待nginx进程处理任务完毕进行停止。
2.1.3 可能存在的问题
./nginx无法运行
出现这个错误只需root下手动创建目录即可。
如图所示
真机无法访问nginxx服务
一般是防火墙引起的
在CentOS/RHEL 6上开启端口:
在CentOS/RHEL 6甚至更早版本系统上,iptables服务负责维护防火墙规则。
使用iptables的第一条命令可以通过防火墙开启一个新TCP/UDP端口。为了永久保存修改过的规则。
$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo service iptables save
$ sudo service iptables restart
在CentOS/RHEL 7上开启端口
启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则。
使用这些命令来永久打开一个新端口(如TCP/80)。
$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
$ sudo firewall-cmd --reload
ftp服务
ftp服务安装部署成功及测试
http://blog.csdn.net/likunwen_001/article/details/49847677
https://zhidao.baidu.com/question/334450562.html
不能上传图片至自己生成的文件夹,只能上传至根目录
http://blog.csdn.net/liquantong/article/details/74080095
ftp服务器上的文件夹所有者一定要是ftpuser,否则无法上传。
文件上传,这里需要使用到commons jar包下的FtpClient:
public void testFtpClient() throws Exception {
// 创建一个FtpClient对象
FTPClient ftpClient = new FTPClient();
// 创建ftp连接,默认端口是21
ftpClient.connect("192.168.76.132", 21);
// 登录ftp服务器,使用用户名和密码
ftpClient.login("ftpuser", "hyh43219966");
// 上传文件
// 读取本地文件
FileInputStream fileInputStream = new FileInputStream(
new File("E:\\Documents\\pictures\\shanzhi.png"));
// 设置上传的路径
ftpClient.changeWorkingDirectory("/home/ftpuser/www/images");
// 修改上传文件的格式 (二进制格式)
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
// 第一个参数:服务器端文档名
// 第二个参数:上传文档的 inputStream
ftpClient.storeFile("hello.png", fileInputStream);
// 关闭连接
ftpClient.logout();
}
最后总结
nginx配置完成最后一定要记得配置图片服务器的根目录
配置图片服务器
在nginx的默认配置文件nginx.config的server{}中location /{} 修改配置 80端口号:
#默认请求
location / {
root /home/ftpuser/www;#定义服务器的默认网站根目录位置
index index.html index.php index.htm;#定义首页索引文件的名称
}
其中:/home/ftpuser/www;为创建FTP服务账户ftpuser的根目录下的www目录
引发403 Forbidden的原因
1、在根目录下没有index索引文件
2、文件夹与文件的权限不够,最好文件夹全部设成755,文件全部644
http://blog.csdn.net/lanjianhun/article/details/26836343
完整的nginx+ftp部署
http://blog.csdn.net/u012401711/article/details/53525908