3、商品添加

1 商品类目选择

1.1Service层

easyUi的异步tree控件

树控件读取URL。子节点的加载依赖于父节点的状态。当展开一个封闭的节点,如果节点没有加载子节点,它将会把节点id的值作为http请求参数并命名为'id',通过URL发送到服务器上面检索子节点。

找Bug小技巧之file search

fileSearch1.png
fileSearch2.png

2.2 Controller层

功能:接收页面请求的参数,名为 id。调用service查询分类列表,返回json格式的数据(列表)。需要使用@ResponseBody注解。

2 上传图片

2.1 图片保存的位置

2.1.1 集群环境

在集群环境中,用户上传图片到一台tomcat,再次访问图片时连接到的是另外一台tomcat,此时访问不到图片。

这种情况,会出现用户有时刷新页面能看到图片,有时又看不到图片。

传统方式.png

解决的办法:将图片放在一台专门的服务器上。

ftp服务器.png

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

安装成功查看安装目录 :

make.png

3、启动nginx

cd /usr/local/nginx/sbin/
./nginx 

查询nginx进程:

nginx进程.png

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下手动创建目录即可。
如图所示

目录问题.png
真机无法访问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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容