1. 程式人生 > >運維相關筆記

運維相關筆記

1. 增量釋出
在windows下操作得到增量包
1)拷貝整個工程到d:/tmp下
2)清除一天以前所有的檔案,參考win7 如何批量刪除指定日期以前的檔案
···forfiles /p D:\tmp /d -1 /s /m . /c “cmd /c del /f @path”···
3)用刪除空目錄工具Remove Empty Directories刪除所有空目錄
工具下載地址
4)至此得到了一個增量更新的目錄就可以壓縮上傳發布到伺服器上了
2. Angular2的專案釋出
1)如果用hash路由打包,則可以部署在任意容器中
2)否則只能用node或者nginx來啟動,用tomcat不知道怎麼配置
nginx的配置

       location / {
           root /data/server/apps/app1/dist;
           try_files $uri $uri/ /index.html =404;
        } 

問題解決

  • nested exception is java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file
    把老的工程複製到另外一臺伺服器上就報這個錯誤, 有說法是JDK和tomcat版本不一致導致,也有說法是在檔案傳輸過程中位元組碼檔案被損壞了。
    在新機器中輸入 echo $LANG,發現新的伺服器上只有en_US.UTF-8英文的UTF-8字符集,沒有中文的字符集。而在老的機器中有:zh_CN.UTF-8:en_US.UTF-8,老機器中vim /etc/sysconfig/i18n, 然後source /etc/sysconfig/i18n
LANGUAGE="en_US:zh_CN.UTF-8:en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LANG="zh_CN.UTF-8:en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

CentOS6.x 字符集配置檔案在/etc/syscconfig/i18n;
CentOS7.x 字符集配置檔案在/etc/locale.conf;
但是問題還是沒有解決,最後發現報錯的類檔案在近期被人修改過,原來是用Linux命令把微軟雅黑字型替換掉造成的,該類是傳送郵件類,裡面用到了Microsoft YaHei字型,命令竟然能夠找到.class檔案中的字串

  • 有兩個web工程原來是通過不同子域名配置訪問正常,有客戶要求用IP訪問,發現從web1通過sendRedirect跳轉到web2以後web1的session就丟失了
    原因分析:cookie是隻認IP不認埠的,在訪問web1時生成了一個cookie,跳轉到web2後又重新生成了一個cookie,這個時候再去操作web1使用的是web2的cookie了,找不到session所以就會跳轉到登入介面去
    解決辦法:web1和web2使用不同的IP訪問