軟件安裝檢索

 

# git倉庫裸板本javascript

git clone --bare git://oldgithub.com/username/oldproject.gitphp

cd oldproject.git css

git push --mirror git@newgithub.com/username/newproject.githtml

內存java

ps -aux|head -n 1;ps -aux|grep -v "PID"|sort -nr -k +4|head -n 1 python

 

-- shellmysql

http://www.javashuo.com/article/p-xntjmgny-hc.htmllinux

-- limitnginx

ulimit -HSn 65535
cat /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535

-- python3c++

cd /usr/local/src
wget hhttps://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel lib-devel   ncurses-devel   tk-devel gcc make
tar -xf Python-3.6.4.tgz 
cd Python-3.6.4
./configure --prefix=/usr/local/python-3.6.4
make
make install
ln -s /usr/local/python-3.6.4/bin/python3 /usr/bin/python3

-- nginx  

yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
cd /usr/local/src
wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --prefix=/usr/local/nginx
make && make install

export PATH=$PATH:/usr/local/nginx/sbin/
echo "export PATH=$PATH:/usr/local/nginx/sbin/" >> /etc/profile

cat >> /usr/lib/systemd/system/nginx.service < EOF 
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx 
[Install]
WantedBy=multi-user.target
EOF 

簡要

簡要優化
server_tokens off;    # 響應頭避免版本信息
sendfile on;          # 文件描述符之間的數據拷貝函數
tcp_nopush on;        # 減小網絡報文段的數量
worker_rlimit_nofile  # 65535;

標準proxy
location ~ ^(/online_svr/room/members) { 
    proxy_pass ip:9990$request_uri;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
}


301 永久跳轉
rewrite ^/(.*)$ http://www.ipaylinks.com/$1 permanent;
302 
redirect

不記錄Lb
location / { if ($request_method = HEAD) { access_log off; } }   

location

location測試/test和/的優先級,匹配得越多,優先級越高
location / {
	return 200;
}
location /test {
	return 401;
}

正則location的優先級狀況,正則優先級高於普通的通配
location / {
	return 200;
}
location /test {
	return 401;
}
location ~ ^/test {
	return 402;
}

兩個正則同時匹配到的優先級+忽略大小寫的正則說明
location / {
	return 200;
}
location /test {
	return 401;
}
location ~ ^/test {
	return 402;
}
location ~* ^/test/test {
	return 403;
}

精準匹配的優先級最高,高於正則,高於普統統配
location / {
	return 200;
}
location /test {
	return 401;
}
location ~ ^/test {
	return 402;
}
location ~* ^/test/test {
	return 403;
}
location = /test/test {
	return 404;
}

若是須要掛維護頁面的話,只要保留一個location,由於這個默認的location優先級最低
location / {
	return 200;
}

負載壓縮反向代理https

返回字符串
location / {
    default_type application/json;
    return 200 '{"status":"success","result":"nginx json"}';
}


https 

conf文件
upstream harbor {
    server 127.0.0.1:180;
}

server {
    listen 443;
    server_name joker.fish-test.com;
    access_log /var/log/nginx/access.log;
   
    ssl on;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    client_max_body_size 1000m;
    
    location / {
        proxy_pass http://harbor;
        proxy_set_header Host $http_host;
        include proxy_params;
    }
}

server {
    listen 80;
    server_name joker.fish-test.com;
    rewrite (.*) https://$server_name$request_uri;
}

proxy_params 
文件

proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Custom nidaye;

proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffer_size 32k;
proxy_buffering on;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;


壓縮
文件
gzip on;
gzip_min_length 1024;
gzip_comp_level 6;
zip_types text/plain application/x-javascript text/css text/html application/html;
gzip_vary on;
gzip_disable "MSIE [1-6]\."; 

-- mysql

yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel
useradd -s /sbin/nologin mysql
cd /usr/local/src
wget https://www.mysql.com/Downloads/MySQL-5.6/mysql-5.6.39.tar.gz
tar -zxvf mysql-5.6.39.tar.gz
cd mysql-5.6.39
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
make && make install
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld


export PATH=$PATH:/usr/local/mysql/bin/
echo "export PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile

# 經過cat >> > 追加仍是清空追加
cat > /etc/my.cnf << EOF
[mysqld]
bind-address=0.0.0.0
port=3306
datadir=/data/mysql
user=mysql
skip-name-resolve
long_query_time=2
slow_query_log_file=/data/mysql/mysql-slow.log
expire_logs_days=2
innodb-file-per-table=1
innodb_flush_log_at_trx_commit = 2
log_warnings = 1
max_allowed_packet = 512M
connect_timeout = 60
net_read_timeout = 120

[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
EOF


mkdir -pv /data/mysql
chown -R mysql:mysql  /usr/local/mysql /data/mysql/
yum install -y perl-Module-Install
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql  --datadir=/data/mysql/


cat >> /usr/lib/systemd/system/mysqld.service < EOF
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
[Install]
WantedBy=multi-user.target
EOF

mysql操做

初始設置密碼
mysqladmin -uroot -p123456 password 123

受權
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'127.0.0.1' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTION;
flush privileges;

刪除用戶
delete from mysql.user where user='‘gogs’';

跳過密碼
[mysqld]
skip-grant-tables

修改用戶密碼
update user set password=password('123') where user='root' and host='localhost';
flush privileges;

-- php

yum -y install  epel-release gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel

cd /usr/local/src/
wget http://hk1.php.net/distributions/php-5.6.40.tar.gz
tar -zxf php-5.6.40.tar.gz
cd php-5.6.40


./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-ctype --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fpm --with-pdo_mysql
make && make install
cp php.ini-production /usr/local/php/etc/php.ini

export PATH=$PATH:/usr/local/php/sbin/:/usr/local/php/bin/
echo "export PATH=$PATH:/usr/local/php/sbin/:/usr/local/php/bin/" >> /etc/profile

mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf


cat >> /usr/lib/systemd/system/php-fpm.service < EOF
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
[Install]
WantedBy=multi-user.target
EOF

test_mysql.php

[root@Poppy blog]# cat test_mysql.php 
<?php
	$link_id=mysql_connect('localhost','root','123456') or mysql_error();
	if($link_id){
			echo "mysql successful by root";
	}else{
			echo mysql_error();
	}

// 這是單行註釋
/* 這是多行註釋 */
?>

客戶端訪問
[root@joker ~]# curl blog.joker.com/test_mysql.php
mysql successful by root 

-- jdk

cd /usr/local/src
# 下載地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
wget https://download.oracle.com/otn/java/jdk/8u212-b10/59066701cf1a433da9770636fbc4c9aa/jdk-8u212-linux-x64.tar.gz
tar -zxf jdk-8u212-linux-x64.tar.gz
mv jdk1.8.0_212 /usr/local/

export JAVA_HOME=/usr/local/jdk1.8.0_212/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

-- redis

yum install -y wget net-tools gcc gcc-c++ make tar openssl openssl-devel cmake
cd /usr/local/src
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
tar -zxf redis-4.0.9.tar.gz
cd redis-4.0.9
make
mkdir -pv /usr/local/redis/conf /usr/local/redis/bin
cp src/redis* /usr/local/redis/bin/
cp redis.conf /usr/local/redis/conf

export REDIS_HOME=/usr/local/redis/
export PATH=$PATH:$REDIS_HOME/bin

/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf

-- logrotate

ls -lh /etc/logrotate.d/

/var/log/nginx/*log {
    create 0644 nginx nginx    # 建立新的日誌文件
su root root # 切用戶執行 daily # 天天 rotate 20 # 保留份數 missingok # 日誌丟失,不報錯繼續滾動下一個日誌 notifempty # 當日志文件爲空時,不進行輪轉 compress # gzip壓縮 dateext # 切割後的日誌文件以當前日期爲格式結尾 sharedscripts # 運行postrotate腳本,做用是在全部日誌都輪轉後統一執行一次腳本。若是沒有配置這個,那麼每一個日誌輪轉後都會執行一次腳本 postrotate # 在logrotate轉儲以後須要執行的指令 /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true endscript # 命令結束 } logrotate -v -f /etc/logrotate.d/nginx tail -f /var/lib/logrotate/logrotate.status

-- systemd

在/usr/lib/systemd/system目錄添加一個配置文件zabbix_agentd.service

[Unit]
#描述
Description=zabbix_agent

#表示服務信息
[Service]
Type=forking
#注意:須要和conf配置文件中的信息一致
PIDFile=/tmp/zabbix_agentd.pid
#啓動服務的命令
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
#從新加載命令
ExecReload=/bin/kill -s HUP $MAINPID
#中止服務的命令
ExecStop=/bin/kill -s QUIT $MAINPID
#意外的失敗,就將重啓
Restart=on-failure
#重啓服務以前,須要等待的秒數
RestartSec=1s

#安裝相關信息
[Install]
#multi-user.target代表當系統以多用戶方式啓動時,這個服務須要被自動運行
WantedBy=multi-user.target

#重載配置
systemctl daemon-reload

啓動命令
systemctl start zabbix_agentd.service
systemctl stop zabbix_agentd.service
systemctl restart zabbix_agentd.service

開機啓動
systemctl enable zabbix_agentd.service
systemctl disable zabbix_agentd.service
systemctl list-unit-files|grep zabbix

 

DCOKER ORDER

-------
運行容器
docker run -d -it --name joker1centos --mount source=my-vol2,target=/data centos:7.6.1810 /bin/bash

-it
-t 讓Docker分配一個僞終端(pseudo-tty)並綁定到容器的標準輸入上, 
-i 則讓容器的標準輸入保持打開。即爲交互模式。
當利用docker run來建立容器時,Docker在後臺運行的標準操做包括:

-------
查看日誌
docker logs id
HOLD日誌
docker logs -f id

-------
建立數據卷
docker volume create my-vol
docker volume ls
docker volume inspect my-vol

掛載數據卷
docker run -d -P --name web3 --mount type=volume,source=my-vol,target=/opt/webapp training/webapp python app.py
docker run -d -p --name web3 -v my-vol:/opt/webapp:ro training/webapp python app.py

掛載目錄
docker run -d -P --name web4 --mount type=bind,source=/data,target=/opt/webapp,readonly training/webapp python app.py
docker run -d -p --name web4 -v /data:/opt/webapp:ro training/webapp python app.py

DOCKER REGISTRY

私有倉庫
docker pull registry
docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name local --restart=always registry

docker tag centos:7.6.1810 127.0.0.1:5000/centos:1.0.1
docker push 127.0.0.1:5000/centos:1.0.1
curl 127.0.0.1:5000/v2/_catalog
{"repositories":["centos"]}

docker tag registry 127.0.0.1:5000/registry:1.0.1
docker push 127.0.0.1:5000/registry:1.0.1
curl 127.0.0.1:5000/v2/_catalog
{"repositories":["centos","registry"]}

docker image ls
127.0.0.1/centos           1.0.1               f1cb7c7d58b7        3 months ago        202MB
127.0.0.1:5000/registry    1.0.1               f32a97de94e1        4 months ago        25.8MB


另外一臺
curl 192.168.27.129:5000/v2/_catalog
{"repositories":["centos","registry"]}

PULL錯誤
docker pull 192.168.27.129:5000/centos
Using default tag: latest
Error response from daemon: Get https://192.168.27.129:5000/v2/: http: server gave HTTP response to HTTPS client

國內加速
支持HTTPS
[root@localhost ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors":[
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.27.129:5000"
  ]
}

重載啓動
systemctl daemon-reload
systemctl restart docker

從新PULL
docker pull 192.168.27.129:5000/centos:1.0.1
docker pull 192.168.27.129:5000/registry:1.0.1

推送
docker tag nginx:v1 192.168.27.129:5000/nginx:1.0.1
docker push 192.168.27.129:5000/nginx:1.0.1
curl 192.168.27.129:5000/v2/_catalog
{"repositories":["centos","nginx","registry"]}

鏡像查看
docker image ls
192.168.27.129:5000/centos     1.0.1               f1cb7c7d58b7        3 months ago        202MB
192.168.27.129:5000/registry   1.0.1               f32a97de94e1        4 months ago        25.8MB

DOCKERFILE基本用法 

[root@localhost docker]# cat file1 
# This docker file
# VERSION 1
# Author: joker
# Base images
FROM centos:7.6.1810

# Maintainer
MAINTAINER joker.li xxx@qq.com

# Commands
RUN yum install -y nginx

# Copy
COPY ["",""]

# Add
ADD ["",""]

# Cmd Shell
CMD ["sh","-c","echo $HOME"]	

# Entrypoint
ENTRYPOINT ["","",""]

# Volume
VOLUME /data

# Expose
EXPOSE 80

# Workdir
WORKDIR /data

# User
RUN groupadd -r redis && useradd -r -g redis redis
USER redis
RUN [ "redis-server" ]

# Env
ENV NODE_VERSION=7.2.0 JAVA_VERSION=1.8

# Healthcheck
HEALTHCHECK --interval=30s --timeout=30s --retries=3 \
  CMD curl -fs http://localhost/ || exit 1

HEALTHCHECK

[root@localhost docker]# cat healthcheck 
# This docker file
# VERSION 1
# Author: joker
# Base images
FROM nginx

# Maintainer
MAINTAINER joker.li xxx@qq.com

# Commands
RUN apt-get update && apt-get install -y curl && rm -fr /var/lib/apt/lists/* 
HEALTHCHECK --interval=3s --timeout=3s --retries=3 CMD curl -fs http://localhost/ || exit 1

REDIS

[root@localhost docker]# cat redis 
# This docker file
# VERSION 1
# Author: joker
# Base images
FROM centos:7.6.1810

# Maintainer
MAINTAINER joker.li xxx@qq.com

# Commands
RUN buildDeps='gcc libc6-dev make wget' \
    && yum install -y $buildDeps \
    && wget -O redis.tar.gz "http://download-ops.tuji.com/download/redis/redis-4.0.9.tar.gz" \
    && mkdir -p /usr/local/src \
    && tar -zxf redis.tar.gz -C /usr/local/src \
    && make -C /usr/local/src/redis-4.0.9 \
    && make -C /usr/local/src/redis-4.0.9 install \
    && mkdir -pv /usr/local/redis/conf /usr/local/redis/bin \
    && cp /usr/local/src/redis-4.0.9/src/redis* /usr/local/redis/bin/ \
    && cp /usr/local/src/redis-4.0.9/redis.conf /usr/local/redis/conf \
    && rm -f redis.tar.gz \
    && rm -fr /usr/local/src/redis-4.0.9 \
    && yum remove -y $buildDeps
EXPOSE 6379
CMD ["/usr/local/redis/bin/redis-server","usr/local/redis/conf/redis.conf"]

ZABBIX

[root@localhost docker]# cat zabbix 
# This docker file
# VERSION 1
# Author: joker
# Base images
FROM centos:7.6.1810

# Maintainer
MAINTAINER joker.li xxx@qq.com

# Workdir
WORKDIR /usr/local/src

# Commands
RUN groupadd -r zabbix && useradd -r -g zabbix zabbix
RUN buildDeps='gcc gcc-c++ make pcre-devel wget' \
    && yum install -y $buildDeps \
    && wget "http://download-ops.tuji.com/download/zabbix/zabbix-4.0.3.tar.gz" \
    && tar -zxf zabbix-4.0.3.tar.gz

# Change Workdir
WORKDIR /usr/local/src/zabbix-4.0.3

RUN ./configure --prefix=/usr/local/zabbix --enable-agent \ 
    && make \
    && make install 

RUN chown zabbix:zabbix -R /usr/local/zabbix/

# User
USER zabbix

# Change Workdir
WORKDIR /usr/local/zabbix

# Volume
VOLUME ["/usr/local/zabbix"]

# Port   
EXPOSE 10050 10051

# Cmd
CMD ["/usr/local/zabbix/sbin/zabbix_agentd","-c","/usr/local/zabbix/etc/zabbix_agentd.conf","-f"]  

NGINX

# This docker file
# VERSION 1
# Author: joker
# Base images
FROM centos:7.6.1810

# Maintainer
MAINTAINER joker.li xxx@qq.com

# Commands
RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm \
    && yum install -y nginx \
    && echo "daemon off;" >> /etc/nginx/nginx.conf

# Add
ADD index.html /usr/share/nginx/html/index.html

# Expose
EXPOSE 80

# Cmd
CMD ["nginx"]

https://docs.docker.com/compose/overview/
https://hub.docker.com/search?q=&type=image

EXAMPLE

[root@localhost compose]# cat docker-compose.yml.bak 
version: '3'
services:
 test11:
  image: busybox:latest
  entrypoint:
   - top
  container_name: test1
  networks:
   - backend
 
 test12:
  image: busybox:latest
  entrypoint:
   - top 
  container_name: test2
  networks:
   - backend
   
networks:
 backend:

WORDPRESS

[root@localhost compose]# cat docker-compose.yml
version: '3'
services:
 db:
  image: mysql:5.7
  volumes:
   - db_data:/var/lib/mysql
  ports:
   - "3306:3306"
  restart: always
  environment:
   MYSQL_ROOT_PASSWORD: somewordpress
   MYSQL_DATABASE: wordpress
   MYSQL_USER: wordpress
   MYSQL_PASSWORD: wordpress

 wordpress:
  depends_on:
   - db
  image: wordpress:latest
  ports:
   - "8000:80"
  restart: always
  environment:
   WORDPRESS_DB_HOST: db:3306
   WORDPRESS_DB_USER: wordpress
   WORDPRESS_DB_PASSWORD: wordpress

volumes:
 db_data:
相關文章
相關標籤/搜索