lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 3.6G 0 loop /mnt/dvd
sr0 11:0 1 30.6M 0 rom
sr1 11:1 1 1024M 0 rom
vda 252:0 0 30G 0 disk
├─vda1 252:1 0 200M 0 part /boot
├─vda2 252:2 0 8G 0 part [SWAP]
└─vda3 252:3 0 21.8G 0 part /
vdb 252:16 0 70G 0 disk
└─vdb1 252:17 0 70G 0 part /opt
vdc 252:32 0 250G 0 disk
tomcat :
x-forward-for:
```xml
```
## docker ce install
download docker binary
```
http://mirrors.aliyun.com/docker-ce/linux/static/stable
```
```bash
tar xzvf docker-27.3.1.tgz
cp docker/* /usr/loca/sbin/
```
```bash
vim /usr/lib/systemd/system/docker.service
```
```docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/local/sbin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
```
```
docker save
```
```
docker run -d \
--name haproxy \
-p 80:80 \
-p 443:443 \
-p 3306:3306 \
-v ./config/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
haproxy:3.0.6
```
gzii-db-2:
lookbusy:
```
#!/bin/bash
/usr/local/bin/lookbusy -c 10-30 --cpu-mode curve --cpu-curve-period 60m --cpu-curve-peak 30m cpu &
```
disk:
```
fallocate -l 240G /opt/tmp/data.zip
```
sql timeout
### Steps:
1. **Create a new rule for `jmwrapid`**:
```sql
INSERT INTO mysql_query_rules (active, username, match_pattern, replace_pattern, timeout, flagIN, destination_hostgroup)
VALUES (1, 'jmwrapid', '.*', 'SET SESSION max_execution_time=30000;', 0, 0, 10);
```
This rule sets a maximum execution time of 30 seconds (30000 milliseconds) for all queries executed by the `jmwrapid` user.
2. **Load the rule into runtime and save it**:
```sql
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;
```
3. **Verify the rule**:
```sql
SELECT * FROM mysql_query_rules WHERE username = 'jmwrapid';
```
This will apply the SQL timeout specifically for `jmwrapid`. Let me know if you need more adjustments!
```sql
UPDATE mysql_query_rules
SET timeout = 60
WHERE username = 'jmwrapid' AND match_pattern = '.*';
```
```sql
INSERT INTO mysql_query_rules (active, username, match_pattern, timeout, flagIN, destination_hostgroup)
VALUES (1, 'jmwrapid', '.*', 60, 0, 10);
```
To update a Docker container's timezone, you can follow these steps:
---
### **1. Update Timezone in a Running Container**
If the container is already running, you can change the timezone by:
#### **a. Using `exec` to set the timezone**
Run the following command to set the timezone in the container:
```bash
docker exec -it ln -sf /usr/share/zoneinfo// /etc/localtime
```
For example, to set the timezone to `America/New_York`:
```bash
docker exec -it ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
```
#### **b. Set the timezone environment variable**
You can also set the `TZ` environment variable in the container:
```bash
docker exec -it sh -c "echo 'America/New_York' > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata"
```
---
### **2. Set Timezone at Container Creation**
To ensure the correct timezone is set when you start a container, you can configure the timezone during container creation.
#### **a. Add a `TZ` environment variable**
Use the `-e` flag to set the `TZ` environment variable:
```bash
docker run -e TZ=America/New_York -d
```
#### **b. Mount the `/etc/localtime` file**
You can mount the host system's timezone file into the container:
```bash
docker run -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -d
```
This ensures the container uses the same timezone as the host system.
---
### **3. Update Dockerfile for Persistent Changes**
If you want all containers created from a specific image to have a pre-configured timezone, you can modify the `Dockerfile`:
```dockerfile
FROM
ENV TZ=America/New_York
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
```
Then rebuild the image:
```bash
docker build -t .
```
---
### **4. Verify the Timezone**
You can verify the timezone in the container by checking the current date and time:
```bash
docker exec -it date
```
---
### Summary:
- Use `docker exec` to update the timezone in a running container.
- Configure the timezone at container creation using `-e TZ` or mounting `/etc/localtime`.
- Modify the `Dockerfile` for persistent timezone settings.
Let me know if you need further clarification!
```
docker exec --user root -it proxysql ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
```
```
echo 'Asia/Shanghai' > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
```
```
docker exec -it proxysql mysql -h 127.0.0.1 -u admin -padmin -P6032 -e "SET GLOBAL time_zone = 'Asia/Shanghai';"
```
```
docker exec -it gzii-db-3 mysql -u root -h 127.0.0.1 -pwc97fjvDg:Ywgyad mysql -e "SET GLOBAL time_zone = 'Asia/Shanghai';"
```
```
docker cp /usr/share/zoneinfo/Asia/Shanghai gzii-db-3:/usr/share/zoneinfo/Asia/Shanghai
docker exec -it -u root gzii-db-3 sh -c "echo 'Asia/Shanghai' > /etc/timezone"
docker exec -u root gzii-db-3 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
```
```
docker cp /usr/share/zoneinfo/Asia/Shanghai gzii-db-4:/usr/share/zoneinfo/Asia/Shanghai
docker exec -it -u root gzii-db-4 sh -c "echo 'Asia/Shanghai' > /etc/timezone"
docker exec -u root gzii-db-4 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
```
17:
cpu 内存:
```
/usr/local/bin/lookbusy -c 10-70 --cpu-mode curve --cpu-curve-period 60m --cpu-curve-peak 30m cpu -m 19GB -M 3000 &
```
auth 失败处理
```
docker run -d \
--name etcd \
--net host \
-v /usr/share/ca-certificates/:/etc/ssl/certs \
-v /opt/etcd/data:/etcd-data \
quay.io/coreos/etcd:v3.4.35 \
/usr/local/bin/etcd \
--enable-v2=true \
--name etcd0 \
--data-dir /etcd-data \
--listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
--advertise-client-urls http://10.194.64.102:2379,http://10.194.64.102:4001 \
--listen-peer-urls http://0.0.0.0:2380 \
--initial-advertise-peer-urls http://10.194.64.102:2380 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster etcd0=http://10.194.64.102:2380 \
--initial-cluster-state new
```
```
docker exec -e ETCDCTL_API=3 etcd etcdctl --endpoints=http://127.0.0.1:2379 endpoint health
```
```
docker exec -e ETCDCTL_API=3 etcd etcdctl user add root --new-user-password="IeGheikae.Woo5ph"
```
```
docker exec etcd etcdctl --endpoints=http://gzii-db-3:2379 role add root
docker exec etcd etcdctl --endpoints=http://gzii-db-3:2379 role grant-permission root --prefix=true readwrite /
docker exec etcd etcdctl --endpoints=http://gzii-db-3:2379 user grant-role root root
```
```
docker exec etcd etcdctl --endpoints=http://gzii-db-3:2379 auth enable
```
```
docker exec -e ETCDCTL_API=3 etcd etcdctl --user=root:IeGheikae.Woo5ph member list
```
要修改 ProxySQL 的**全局**默认查询超时(`mysql-default_query_timeout`),你可以通过 Admin 接口在线调整,也可以修改配置文件后重启或重加载。下面分别介绍这两种方法。
---
## 一、通过 Admin 接口在线修改
1. **登录到 ProxySQL Admin 界面**
```bash
mysql -u admin -padmin -h 127.0.0.1 -P 6032
```
将 `admin`/`admin` 替换成你的管理员用户名和密码。
2. **设置新的默认查询超时**(单位:毫秒)
比如将超时改为 **60 000 ms(60 秒)**:
```sql
SET mysql-default_query_timeout = 60000;
```
3. **将变量加载到运行时配置**
```sql
LOAD MYSQL VARIABLES TO RUNTIME;
```
4. **将当前运行时配置保存到磁盘**
```sql
SAVE MYSQL VARIABLES TO DISK;
```
> 默认情况下,`mysql-default_query_timeout` 的值是 `86400000`(24 小时)([proxysql.com](https://proxysql.com/documentation/global-variables/mysql-variables/?utm_source=chatgpt.com "MySQL Variables - ProxySQL"))。
---
## 二、修改配置文件
1. 打开你的 ProxySQL 配置文件(常见路径 `/etc/proxysql.cnf` 或者 `/etc/proxysql/proxysql.cnf`)
2. 找到 `mysql_variables` 段落,添加或修改 `default_query_timeout`,例如:
```ini
mysql_variables = {
# … 其他变量 …
default_query_timeout = 60000
}
```
3. 重启 ProxySQL 服务以使配置生效:
```bash
systemctl restart proxysql
```
或者如果你希望不中断服务,可以先启动 ProxySQL,然后执行:
```sql
LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;
```
---
## 三、针对单条规则定制超时
如果你只想对特定的查询模式设定更严格或更宽松的超时,可以在 **查询规则** 中使用 `timeout` 字段(单位同样为毫秒):
```sql
INSERT INTO mysql_query_rules (
rule_id, active, match_pattern, destination_hostgroup, timeout
) VALUES (
100, 1, '^SELECT .* FOR UPDATE$', 10, 30000
);
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;
```
> 如果某条规则未指定 `timeout`,就会回退使用全局 `mysql-default_query_timeout`。([proxysql.com](https://proxysql.com/documentation/main-runtime/?utm_source=chatgpt.com "Main (runtime tables definition) - ProxySQL"))
---
以上就是修改 ProxySQL 默认查询超时的方式。根据你的场景选择「全局修改」或「单条规则覆盖」,并记得 `LOAD … TO RUNTIME` + `SAVE … TO DISK` 才能保证即时生效且持久保存。
探针
```
curl -k https://10.207.33.1:9000/up-install/up-install.sh | bash -x
```
内存:
```
free | awk '/^Mem:/ { printf("Memory Usage: %.2f%%\n", $3/$2 * 100) }'
```
nginx 加代理
/dcwj to https://10.205.29.3:8081
```
access_log /var/log/nginx/access.log main;
#keepalive_timeout 65;
upstream form_api_backend {
server 10.194.64.17:8180 max_fails=3 fail_timeout=30s;
}
upstream dcwj_backend {
server 10.205.29.3:8081;
}
# 重定向HTTP请求到HTTPS
server {
listen 80;
server_name data.gxj.gz.gov.cn;
return 301 https://$host$request_uri;
}
# HTTPS服务器配置
server {
listen 443 ssl;
server_name data.gxj.gz.gov.cn 10.194.64.17 _;
# SSL证书配置
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
# intermediate configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:\
ECDHE-RSA-AES128-GCM-SHA256:\
ECDHE-ECDSA-AES256-GCM-SHA384:\
ECDHE-RSA-AES256-GCM-SHA384:\
ECDHE-ECDSA-CHACHA20-POLY1305:\
ECDHE-RSA-CHACHA20-POLY1305:\
DHE-RSA-AES128-GCM-SHA256:\
DHE-RSA-AES256-GCM-SHA384:\
DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
client_max_body_size 30m;
# 默认根路径代理
location / {
proxy_pass http://form_api_backend;
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-Forwarded-Proto $scheme;
proxy_connect_timeout 30s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
# /dcwj 上的反向代理到 HTTPS 后端
location /dcwj/ {
access_log /var/log/nginx/dcwj_access.log main;
proxy_pass https://dcwj_backend$request_uri;
proxy_ssl_server_name on;
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-Forwarded-Proto $scheme;
proxy_connect_timeout 30s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
# 可选:健康检查
location /healthcheck {
return 200 "OK";
add_header Content-Type text/plain;
}
}
```
```
curl -I -k -v https://10.205.29.3:8081
```
nginx logrotate
/etc/logrotate.d/nginx-docker
```
/opt/app/nginx/log/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 root root
sharedscripts
postrotate
# signal the nginx in the container to reopen logs
docker kill --signal=USR1 nginx_container_name
endscript
}
```
new config with gz compress
```
/opt/app/nginx/log/*.log {
daily
missingok
rotate 14
# enable gzip compression of rotated logs
compress
compresscmd /bin/gzip
uncompresscmd /bin/gunzip
compressoptions -9
extension .gz
delaycompress
notifempty
create 0640 root root
sharedscripts
postrotate
# tell the nginx master in the “nginx” container to reopen its logs
docker kill --signal=USR1 nginx
endscript
}
```