部署
多环境
参考文章:https://blog.csdn.net/weixin_41701290/article/details/120173283
本地开发:localhost(127.0.0.1)
多环境:指同一套项目代码在不同的阶段需要根据实际情况来调整配置并且部署到不同的机器上。
为什么需要?
- 每个环境互不影响
- 区分不同的阶段:开发 / 测试 / 生产
- 对项目进行优化:
- 本地日志级别
- 精简依赖,节省项目体积
- 项目的环境 / 参数可以调整,比如 JVM 参数
针对不同环境做不同的事情。
多环境分类:
- 本地环境(自己的电脑)localhost
- 开发环境(远程开发)大家连同一台机器,为了大家开发方便
- 测试环境(测试)开发 / 测试 / 产品,单元测试 / 性能测试 / 功能测试 / 系统集成测试,独立的数据库、独立的服务器
- 预发布环境(体验服):和正式环境一致,正式数据库,更严谨,查出更多问题
- 正式环境(线上,公开对外访问的项目):尽量不要改动,保证上线前的代码是 “完美” 运行
- 沙箱环境(实验环境):为了做实验
前端多环境实战
- 请求地址
- 开发环境:localhost:8000
- 线上环境:backend.zx520.top
startFront(env) {
if(env === 'prod') {
// 不输出注释
// 项目优化
// 修改请求地址
} else {
// 保持本地开发逻辑
}
}
用了 umi 框架,build 时会自动传入 NODE_ENV == production 参数,start NODE_ENV 参数为 development
启动方式
- 开发环境:npm run start(本地启动,监听端口、自动更新)
- 线上环境:npm run build(项目构建打包),可以使用 serve 工具启动(npm i -g serve)
项目的配置
不同的项目(框架)都有不同的配置文件,umi 的配置文件是 config,可以在配置文件后添加对应的环境名称后缀来区分开发环境和生产环境。参考文档:https://umijs.org/zh-CN/docs/deployment
- 开发环境:config.dev.ts
- 生产环境:config.prod.ts
- 公共配置:config.ts 不带后缀
远程连接mysql
在 CentOS 7 上配置防火墙以允许 MySQL 端口 3306 的连接,通常使用 firewalld
,这是 CentOS 7 的默认防火墙管理工具。以下是具体步骤:
使用 firewalld 配置防火墙
检查 firewalld 状态:
sudo systemctl status firewalld
启动 firewalld(如果尚未启动):
sudo systemctl start firewalld
允许 MySQL 端口 3306:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载 firewalld 配置:
sudo firewall-cmd --reload
确认端口已被允许:
sudo firewall-cmd --zone=public --list-ports
配置 MySQL 允许远程连接
编辑 MySQL 配置文件(通常是
/etc/my.cnf
或/etc/mysql/my.cnf
):sudo vi /etc/my.cnf
确保
bind-address
设置为0.0.0.0
,允许所有 IP 地址连接:[mysqld] bind-address = 0.0.0.0
重新启动 MySQL 服务:
sudo systemctl restart mysqld
确认 MySQL 用户权限
确保 MySQL 用户具有远程访问权限:
登录 MySQL 控制台:
mysql -u root -p
授予远程访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; FLUSH PRIVILEGES;
请替换
your_password
为实际的密码。
完成以上步骤后,您应该能够从远程连接到 MySQL 服务器。如果仍然遇到问题,请检查每一步是否正确执行,或者提供更多详细信息以便进一步诊断问题。
修改密码
在 CentOS 7 上修改 MySQL 5.7 密码,可以通过以下步骤完成:
使用 MySQL 客户端修改密码
登录 MySQL 控制台: 首先使用 root 用户登录到 MySQL 控制台:
mysql -u root -p
修改密码: 在 MySQL 控制台中执行以下命令,将
new_password
替换为您想要的新密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
刷新权限: 执行以下命令刷新权限,使更改生效:
FLUSH PRIVILEGES;
退出 MySQL 控制台:
EXIT;
如果忘记 MySQL root 密码
如果您忘记了 MySQL root 用户的密码,可以通过以下步骤重置密码:
停止 MySQL 服务:
sudo systemctl stop mysqld
跳过权限表启动 MySQL: 启动 MySQL 服务器而不加载权限表(即跳过验证),这样可以直接进行更改:
sudo mysqld_safe --skip-grant-tables &
登录 MySQL 控制台: 不需要密码即可登录:
mysql -u root
修改密码: 在 MySQL 控制台中执行以下命令,将
new_password
替换为您想要的新密码:UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES;
退出 MySQL 控制台:
EXIT;
重启 MySQL 服务: 首先终止
mysqld_safe
进程,然后重新启动 MySQL 服务:sudo pkill mysqld_safe sudo systemctl start mysqld
通过以上步骤,您应该能够成功修改或重置 MySQL root 用户的密码。如果遇到任何问题,请提供具体的错误信息以便进一步帮助。
跨域
location ^~ /api/ {
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always;
add_header 'Access-Control-Max-Age' 1728000 always;
add_header 'Content-Type' 'text/plain; charset=utf-8' always;
add_header 'Content-Length' 0 always;
return 204;
}
}