美文网首页
3、商品添加

3、商品添加

作者: 海豚的小小海 | 来源:发表于2017-10-12 11:39 被阅读0次

    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

    相关文章

      网友评论

          本文标题:3、商品添加

          本文链接:https://www.haomeiwen.com/subject/dnawyxtx.html