nginx的优化配置
老高的服务器最近表示亚历山大,先祭出此篇缓解前端压力,之后再从代码中优化一下。
老高的服务器最近表示亚历山大,先祭出此篇缓解前端压力,之后再从代码中优化一下。
ss-manyuser做前端,ss-panel做后端,运行环境centos6。
感谢以下大神提供源码
manyuser:
ss-panel:
mkdir /data
cd /data
git clone https://github.com/mengskysama/shadowsocks.git backend
git clone https://github.com/orvice/ss-panel.git front
# 1. 创建数据库,并建立一个本地用户shadowsocks@localhost,并赋予权限
CREATE DATABASE IF NOT EXISTS shadowsocks DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON shadowsocks.* TO 'shadowsocks'@'localhost' IDENTIFIED BY 'password';
# 2. 导入sql
cd front
cat sql/*.sql > merged.sql
# 登录mysql
mysql>use shadowsocks;
mysql>source path/to/merged.sql;
# 3. 将数据库配置信息写入lib/config.php
这里要提一下:
userid=1的用户是管理员,最好把他的端口将50000改为15000,密码是直接md5,可以自己修改。
passwd字段是ss的连接密码。
# 准备环境
yum -y install python-pip m2crypto
pip install cymysql
# 2. 修改数据库配置
cd shadow socks
vim Config.py
# 2.5 可选操作
# 由于ss可能分布于多个服务器,我们需要一个等够远程登录的账户管理mysql
# 刚才的数据库名为shadowsocks,我们现在建立一个能够远程登录的账号并赋予权限
# 名字就叫 laogao 吧!
CREATE USER laogao@'%' IDENTIFIED BY 'laogao';
# 赋予合适的权限
GRANT select,update on phpergao.* to laogao@'%';
# 3. 运行ss
python server.py
ldd是Linux库操作中最实用的一个命令了,他可以查看一个程序所依赖的库。
如果你的程序执行起来缺少某个库,我们就去下载,但是把库放到哪里才能让程序正确是识别出来呢?使用ldd就可以了!
使用方法: ldd [options] file
功能:列出file运行所需的共享库
可用选项
➜ sbin ldd --help
Usage: ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
-d, --data-relocs process data relocations 执行符号重部署,并报告缺少的目标对象
-r, --function-relocs process data and function relocations 对目标对象和函数执行重新部署,并报告缺少的目标对象和函数
-u, --unused print unused direct dependencies 打印不需要链接的库
-v, --verbose print all information 打印所有信息
例子
➜ /bin ldd /bin/cp
linux-vdso.so.1 => (0x00007fff8dbfe000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f94558e4000)
librt.so.1 => /lib64/librt.so.1 (0x00007f94556dc000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f94554d3000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f94552ce000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9454f3a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f9454d35000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9455b0f000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9454b18000)
如果你选mysql数据库作为数据持久化的工具,那么就需要一个合理的日志配置,这样有助于排错和数据备份及恢复!
首先我们可以通过下面的MySQL的sql查询正在运行中的日志配置。
刚好我们熟悉一下SHOW VARIABLES LIKE
的用法!这个命令是用来查询MySQL运行时配置的语句,LIKE后面的可以接通配符查找!
还有对应的设置语法叫SET GLOBAL
,后面我们会用到。
mysql> SHOW VARIABLES LIKE '%log%';
+-----------------------------------------+---------------------------------+
| Variable_name | Value |
+-----------------------------------------+---------------------------------+
| back_log | 50 |
| binlog_cache_size | 32768 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_format | STATEMENT |
| expire_logs_days | 0 |
| general_log | OFF |
| general_log_file | /var/run/mysqld/mysqld.log |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_mirrored_log_groups | 1 |
| log | OFF |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_bin_trust_routine_creators | OFF |
| log_error | /var/log/mysqld.log |
*| log_output | FILE |*
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
| max_relay_log_size | 0 |
| relay_log | |
| relay_log_index | |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_space_limit | 0 |
| slow_query_log | OFF |
| slow_query_log_file | /var/run/mysqld/mysqld-slow.log |
| sql_log_bin | ON |
| sql_log_off | OFF |
| sql_log_update | ON |
| sync_binlog | 0 |
+-----------------------------------------+---------------------------------+
38 rows in set (0.00 sec)
请注意log_output一行,次配置决定将日志输出到文件还是table中。
我们可以通过SHOW VARIABLES LIKE 'log_output';
查询此配置。
mysql的配置文件位于 /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
# 错误日志
log-error=/var/log/mysql/error_mysql.log
# Slow Query
log-slow-queries=/var/log/mysql/slow_mysql.log
long_query_time=2
# 记录没有使用索引的查询
#log-queries-not-using-indexes
# 常规查询日志,老高主要用于调试PDO参数绑定的查询
general_log=1
general_log_file=/var/log/mysql/general_mysql.log
# < MySql5.1.12
#log = /var/log/mysql/general_mysql.log
[mysqld_safe]
# syslog指将日志记录至系统日志
#syslog
pid-file=/var/run/mysqld/mysqld.pid
log_error=/var/log/mysql/error_mysqld.log
接下来需要重启服务器即可是配置生效!
有时候可能想在不重启mysql的方式开启日志,怎么办?
当然我们可以通过MySQL的sql查询开启。
以下操作假设你已经以root方式登录进入MySQL交互界面
# 查看常规日志配置
SHOW VARIABLES LIKE 'general_log%';
下面我们开启他
# 设置日志文件路径,请先保证路径存在
SET GLOBAL general_log_file='/var/log/mysql/general_mysql.log';
# 开启日志
SET GLOBAL general_log=ON;
# 关闭日志
SET GLOBAL general_log=OFF;
聪明的朋友,既然已经知道SET GLOBAL
、SHOW VARIABLES LIKE
这两个命令,我相信其他的日志配置就难不倒你了。
所以在此老高就不啰嗦了。
请将以下脚本适当修改后命名为php-fpm
约定几个目录
/usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini
docker最近实在火的不行,老高最近也在使用,顺便记录一下。
下载和安装主要参考下面的文章
http://docs.docker.com/installation/mac/