2021年8月23日 星期一

自建 docker repository

Reference:
 
Uninstall old versions docker
  • yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
install docker
  • yum install -y yum-utils
  • yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • yum install docker-ce docker-ce-cli containerd.io
  • systemctl start docker
  • systemctl enable docker

2021年8月16日 星期一

CA 憑證轉檔 (.crt/.key to .pem)

Reference:

Nginx 使用的憑證格式是 .pem,所以需要把憑證轉檔。
 
使用 openssl 轉檔
 
openssl rsa -in private.key -text > private.pem
openssl x509 -inform PEM -in certificate.crt > certificate.pem
openssl x509 -inform PEM -in ca_bundle.crt > ca_bundle.pem 

2021/9/14 update:
 
$ cat certificate.crt ca_bundle.crt >> certificate.crt
 
nginx.conf
    listen               443 ssl;
    ssl                  on;
    ssl_certificate      /etc/ssl/certificate.crt;
    ssl_certificate_key  /etc/ssl/private.key;





2021年8月14日 星期六

nginx setting

Reference:
 

abc.com/user/profile.html转发到 用户服务localhost:8089/profile.html

即,url的前缀对下游的服务是不需要的,除非下游服务添加context-path, 但很多时候我们并不喜欢加这个。如果Nginx转发的时候,把这个前缀去掉就好了。

一个种方案是proxy_pass后面加根路径/.

server {
    listen              80;
    server_name         abc.com;
    access_log  "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G"  main;

    location ^~/user/ {
        proxy_set_header Host $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://localhost:8089/;
    }
}

 ^~/user/表示匹配前缀是user的请求,proxy_pass的结尾有/, 则会把/user/*后面的路径直接拼接到后面,即移除user.

 
 
 
 
 

Docker install wordpress

Reference:

install docker
  • yum install -y docker
  • systemctl start docker
Install Docker Compose
  • curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • chmod +x /usr/local/bin/docker-compose

2021年8月6日 星期五

nginx on Windows 效能問題

Reference: 

狀況:
在 Windows server 使用 nginx 做 reverse proxy,對網站做壓力測試,網站的平均回應時間很長。

原因:
nginx on Windows 不支援
events {
    use epoll;
}

暫時解法:
  • 使用 upstream 的 keepalive
upstream http_backend {
    server 127.0.0.1:8080;
    keepalive 128;
}

  • 修改 Windows TCP time_wait 設定
執行 regedit
進入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新增 REG_DWORD: TcpTimedWaitDelay
Range: Windows Server 2012R2 和更新版本: 2-300 (decimal)