lmrs实战

lmrs 是 laravel+mysql+redis+swoole 中大型商城项目
php7.4 nginx1.18 mysql8.0.23 redis6.0.6 laravel7 swoole4 es7.8
不熟悉的概念 ems mycat consul lua
elasticsearch 分布式引擎

三个核心系统:用户、商品、订单,分三个系统
用户:lnmp,一台nginx,一主二从mysql
商品:lnmp,一台负载均衡+多台nginx(包含热备),一主二从mysql,一台搜索es,单台商品详情redis
订单:lnmp,一台负载均衡+多台nginx(包含热备),一主二从mysql,一台搜索es,单台redis
服务之间的通信:1.http 2.redis消息队列 stream类型 3.rabbimq、kafak 4. grpc
docker 搭建环境,Go语言,镜像,容器
docker pull Redis:6.0 拉取redis镜像
docker run 构建容器
-p 6379:6379 指定容器端口,容器内端口和宿主机端口的映射
-d 容器以守护进程运行
--name redis 设置容器名称
-v /docker/redis/redis.conf:/usr/local/redis/redis.conf 将宿主机的redis配置文件或目录映射到容器内
--privileged=true 允许权限
docker exec -it 容器id/容器名称 bash 进入容器内部
docker images 查看当前镜像
docker ps 查看启动的容器
-a 查看所有容器
docker logs 容器ID/容器名称 查看容器日志
docker top 容器ID/容器名称 查看容器进程
docker inspect 容器ID/容器名称 | grep ""
docker export 容器ID/容器名称 > filename.tar 导出容器
cat filename.tar | docker import - 容器名称:tag

dockerfile

安装nginx容器
docker pull nginx
docker run -p 80:80 -d --name nginx -v /docker/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /docker/www:/docker/www --privileged=true nginx
安装php容器
docker pull php:7.4-fpm
docker run -p 9000:9000 -d --name php -v /docker/www:/docker/www --privileged=true php:7.4-fpm
安装mysql容器
dcoker pull mysql
docker run -p 3306:3306 -d -name mysql -v /docker/mysql/my.conf:/etc/my.conf --privileged=true -e MYSQL_ROOT_PASSWORD=root mysql

default.conf:

server {
  listen 80;
  listen [::]:80;
  server_name localhost;
  root /docker/www/lmrs-2008/public;
  index index.php index.html;

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /docker/www/lmrs-2008/public;
  }

  location ~ \.php$ {
    root /docker/www/lmrs-2008/public;
    fastcgi_pass 172.17.0.3:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

my.conf:

[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
secure_file_priv=/var/lib/mysql
port = 3306
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 100G
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 4K
read_buffer_size = 768K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
tmp_table_size = 32M
default_authentication_plugin = mysql_native_password
lower_case_table_names = 1
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
binlog_expire_logs_seconds = 600000
slow_query_log=1
slow-query-log-file=/usr/local/mysql/data/mysql-slow.log
long_query_time=3
early-plugin-load = ""
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 1
innodb_write_io_threads = 1
[mysqldump]
quick
max_allowed_packet = 500M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
posted @ 2021-05-10 10:27  ElleryM  阅读(214)  评论(0)    收藏  举报