Pixiv Illustration Collection环境部署备忘

发布于 2018-10-06  418 次阅读


1)JDK相关

  • 前往Oracle官网下载linux版本jdk安装包
  • 将安装包放置于/usr/local目录下并解压
  • 更改系统环境变量(/etc/profile)
    JAVA_HOME=/usr/local/jdk目录
    CLASSPATH=$JAVA_HOME/lib/
    PATH=$PATH:$JAVA_HOME/bin
    export PATH JAVA_HOME CLASSPATH
    
  • 重启机器,键入java -version查看是否安装完成

2)Tomcat相关

  • 前往Apache官网下载最新的安装包
  • 将安装包放置于/usr/local目录下并解压
  • 进入bin目录,编辑setclaspath.sh在开头添加
    export JAVA_HOME=/usr/local/jdk目录
    export JRE_HOME=/usr/local/jdk目录/jre
  • 运行:bash startup.sh
    关闭:bash shutdown.sh
  • 开机自启动与注册服务:https://myxu.github.io/2018/04/28/CentOS7-%E5%AE%89%E8%A3%85Tomcat9/
  • 配置集群并且规定只允许本机访问:复制一份文件到local目录下并更改conf/server.xml,修改端口并在Connector标签下增加
    address="127.0.0.1" 

3)Nginx相关

  • gcc:
    yum install gcc-c++
  • PCRE pcre-devel:
    yum install -y pcre pcre-devel
  • zlib:
    yum install -y zlib zlib-devel
  • OpenSSL:
    yum install -y openssl openssl-devel
  • 前往Nginx官网下载最新的安装包
  • 将安装包放置于/usr/local目录下并解压
  • 配置:
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module
  • 编译安装:
    make
    make install
  • 相关操作:
    cd /usr/local/nginx/sbin/
    ./nginx 
    ./nginx -s stop
    ./nginx -s quit
    ./nginx -s reload
  • tomcat前后分离
    
    #user  nobody;
    worker_processes  2;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        use epoll;
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
        include /usr/local/nginx/conf/proxy.conf;
        include /usr/local/nginx/conf/gzip.conf;
        #gzip  on;
        #负载均衡
        upstream tomcat{
        ip_hash; #每个请求按照ip的hash结果分配,同一个ip的访客固定访问一个后端服务器
        server 127.0.0.1:8080 fail_timeout=0;
        server 127.0.0.1:8081 fail_timeout=0;
        }
        #禁止通过Ip访问
        server{
        server_name _:
        return 404;
        }
        server {
            listen       80;
            server_name pixivic.com www.pixivic.com  m.pixivic.com pixivic.cn www.pixivic.cn; 
            rewrite ^/(.*) https://pixivic.com/$1 permanent; 
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
            location / {
                root   html;
                index  index.html index.htm;
            }
            #error_page  404              /404.html;
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
        }
        server
        {
        listen 443;
        server_name  api.pixivic.com;
            ssl on;
            ssl_certificate ../ssl/1_api.pixivic.com_bundle.crt;
            ssl_certificate_key ../ssl/2_api.pixivic.com.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;
            location  / {          
             proxy_pass http://tomcat/;
            }
        }
        
        server
        {
        listen 443; 
        server_name  pixivic.com;
            ssl on;
            ssl_certificate ../ssl/1_pixivic.com_bundle.crt;
            ssl_certificate_key ../ssl/2_pixivic.com.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;
            root         /home/www/pixivic.com;
            index         index.html;
            error_page  404 403 500 502 503 504  /404.html;
            #静态页面
            location  / {          
            if (!-e $request_filename){  
               rewrite (popSearch|dailyRank) /$1.html last;
               break;
            }
            }
            #404
            location = /404.html {
            # 放错误页面的目录路径。
            root   /home/www/pixivic.com;
            }
            set $mobile_rewrite do_not_perform;
            if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino") {
                set $mobile_rewrite perform;
            }
            if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)") {
                set $mobile_rewrite perform;
            }
            if ($mobile_rewrite = perform) {
                rewrite ^ https://m.pixivic.com$uri redirect;
            }
        }
        server
        {
        listen 443; 
        server_name www.pixivic.com pixivic.cn www.pixivic.cn;
        rewrite ^/(.*) https://pixivic.com/$1 permanent; 
        ssl on;
            ssl_certificate ../ssl/1_www.pixivic.com_bundle.crt;
            ssl_certificate_key ../ssl/2_www.pixivic.com.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;
        }
         server
        {
        listen 443; 
        server_name m.pixivic.com;
            ssl on;
            ssl_certificate ../ssl/1_m.pixivic.com_bundle.crt;
            ssl_certificate_key ../ssl/2_m.pixivic.com.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;
            root         /home/www/m.pixivic.com;
            index         index.html;
            error_page  404 403 500 502 503 504  /404.html;
            location  / {          
            if (!-e $request_filename){  
               rewrite (popSearch|dailyRank) /$1.html last;
               break;
            }
            }
            location ^~ /api/ {
            proxy_pass http://tomcat/;
            }
            # 承接上面的location。
            location = /404.html {
            # 放错误页面的目录路径。
            root   /home/www/m.pixivic.com;
            }
        }
    }

     

4)Mariadb相关

  • 安装:
    yum -y install mariadb mariadb-server
  • 启动
    systemctl start mariadb
  • 设置开机启动
    systemctl enable mariadb
  • 初始设置
    mysql_secure_installation
  • 登录测试
    mysql -uroot -p

5)系统相关

  • 防火墙:
    root权限
    		firewall-cmd --zone=public --add-port=80/tcp --permanent  
    		命令含义:
    		--zone #作用域
    		--add-port=80/tcp  #添加端口,格式为:端口/通讯协议
    		--permanent   #永久生效,没有此参数重启后失效
    		重启防火墙:
    		systemctl stop firewalld.service  
    		systemctl start firewalld.service  
    		或者:
    		firewall-cmd  --reload

     

  • 检查端口:
    netstat -ntlp   //查看当前所有tcp端口
  • BBR:https://www.91yun.co/archives/5174

6)MAVEN打包相关

  • web项目:
    war:  mvn compile package -Dmaven.test.skip=true -Ptest 

     

  • 普通项目:在pom.xml添加打包插件
     <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <archive>
                                <manifest>
                                    <mainClass>crawler.DailyRankCrawler</mainClass>
                                </manifest>
                            </archive>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
     </plugin>

    执行命令:

    mvn assembly:assembly

     

 


面向ACG编程