随手记录一些工作日常

随手记录一些思路和解决方案

Laravel 部署在二级目录

少儿编程项目上二期产品,为了减少部署时ssl证书申请,需把多个laravel项目配置在一个域名下,也就是这样:

https://www.codeisland.cn/ // 一期产品
https://www.codeisland.cn/laravel-project-2 // 二期产品

ps 这个也可以用我之前写的 Nginx通过二级目录映射不同的反向代理 的的方式解决

以下是nginx主要配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

server {
listen 80;
root /var/www/laravel-project-1/public;
server_name www.codeisland.cn;

# 根目录下一期产品laravel-project-1 项目
location / {
autoindex on;
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$query_string;
}


# 二级目录下二期产品laravel-project-2 项目
location ^~ /laravel-project-2/ {
alias /var/www/laravel-project-2/public/;
if (!-e $request_filename) {
rewrite ^ /laravel-project-2/index.php last;
}

location ~ \.php$ {
if (!-f $request_filename) {
return 404;
}

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}

# try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}



}

游戏、前端、后端的完全分离

docker

从容器创建一个新的镜像

1
2
3
# docker login -u entere -p
# docker commit -a "entere" -m "this is test" 651a8541a47d nginx-test entere/my-test-nginx:v1
# docker push entere/my-test-nginx:v1

删除全部

1
# docker rm -f $(docker ps -a -q) # 删除

管理卷:

1
2
3
# docker volume create nginx-vol
# docker volume ls
# docker volume inspect nginx-vol

用卷创建一个容器

1
# docker container run --name nginx-test -itd -p 8080:80 --mount src=nginx-vol,dst=/usr/share/nginx/html nginx
1
2
# docker run -it -v /宿主机绝对目录:/容器内目录 镜像名
# docker run -it -v /wwwroot:/usr/share/nginx/html nginx

清理

1
2
3
# docker container stop nginx-test
# docker container rm nginx-test
# docker volume rm nginx-vol

实例,创建一个nginx容器,并挂相关目录

1
# docker container run --name my-nginx -itd -p 8080:80 --privileged=true -v /var/www/for-docker/my-nginx/nginx/log:/var/log/nginx -v /var/www/for-docker/my-nginx/nginx/conf:/etc/nginx/conf.d -v /var/www/for-docker/my-nginx/nginx/html:/usr/share/nginx/html nginx

坑1:项目 URL 地址优化,nginx换了 URL 301跳转,换了一次跳转地址,没有加nocache 导致业务跳转到旧版本