發表文章

目前顯示的是 1月, 2019的文章

[Linux] CentOS python2.6 升級 2.7 但不影響yum, 安裝pip

Ref: https://snippetinfo.net/media/1955 https://www.itread01.com/articles/1498939033.html yum groupinstall "Development tools" yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel cd /opt wget --no-check-certificate https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz tar xf Python-2.7.6.tar.xz cd Python-2.7.6 ./configure --prefix=/usr/local make && make altinstall 其實主要需要解決的是系統 Python soft link 指向 Python2.7 版本後 因為yum是不兼容 Python 2.7的 所以yum不能正常工作 我們需要指定 yum 的Python版本 vi /usr/bin/yum 將文件頭部的 !/usr/bin/python 改成 !/usr/bin/python2.6 (此處為系統內原本python2.6的位置) 然後把新裝好的 python 用 soft link 指回去 /usr/bin/python 就可以囉! ln -s /usr/bin/python2.7 /usr/local/bin/python 另外不想用yum install python-pip的話 可以用: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py # pip安裝好之後可以使用 pip -V 看版本 # 要安裝套件就直接 pip install 套件 pip install flask pip install redis pip install scrapy

[Nginx] 使用轉址做負載平衡

Ref: http://blog.51cto.com/smileyouth/1623766 https://serverfault.com/questions/597671/load-balancing-in-nginx-with-redirect-rather-than-proxy https://stackoverflow.com/questions/46515842/nginx-proxy-pass-same-protocol-http-https 有個需求是這樣的 現在前端使用某一個 url, 假設是 http://example.com/test 然後希望前端載入這個網址的時候, 可以讓這個 url 隨機導向N個不同的網域, 假設是 a.example.com, b.example.com, c.example.com 但是後面路徑要是一樣的 也就是 http://example.com/test?t=1 -> http://c.example.com/test?t=1 這樣該怎麼做呢? 先假設 nginx 路徑是安裝在 /usr/local/nginx 先建立一個 /usr/local/nginx_module的目錄 安裝這個 module 要先下載另一個 ngx_devel_kit 先到  https://github.com/simplresty/ngx_devel_kit/tags 找個版本下載 cd ~ && wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.1rc1.tar.gz tar zxfv v0.3.1rc1.tar.gz #把解壓縮出來的目錄去掉版本號 mv ngx_devel_kit-0.3.1rc1 ngx_devel_kit && mv ngx_devel_kit /usr/local/nginx_module/ 然後接著下載  set-misc  這個 module 先到  https://github.com/openresty/set-misc-nginx-module/tags 找個版本下載 cd ~ && wget http

[Nginx] 幫 nginx 特定網址加上 basic auth

Ref: http://www.ttlsa.com/nginx/nginx-basic-http-authentication/ https://serverfault.com/questions/505482/nginx-auth-only-for-given-location 假如說有需要對特定的網址加上簡單的驗證保護 又懶得去新增比較複雜的會員機制 就可以考慮簡單的 Nginx Basic Auth 這個方法 一般情況下, ngx_http_auth_basic_module 是已經被包含在預設安裝內了 所以假設我需要對 /abc 這個網址去做驗證 可以新增以下語法(以PHP為例) location = /abc { auth_basic "basic http auth for this site"; auth_basic_user_file /etc/nginx/conf.d/htpasswd; try_files $uri $uri/ /index.php?$args; } 然後可以使用 htpasswd 來驗證 以上面的例子而言, 可以將帳號密碼新增到 /etc/nginx/conf.d/htpasswd內 假設新增帳號: abc, 密碼: 123456 printf "abc:$(openssl passwd -crypt 123456)\n" >>/etc/nginx/conf.d/htpasswd 接著可以確認自己 nginx 有沒有出錯 可以使用以下指令並 reload nginx nginx -t nginx -s reload