# 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: