📃个人主页:编程的一拳超人
⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞
于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 ——《人民日报》
Linux环境部署与命令技巧

一、Linux环境部署Tomcat全流程
1. 安装Java
# 检查Java是否安装
java -version
# 安装OpenJDK 11
sudo yum install java-11-openjdk
2. 创建Tomcat专用用户
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
参数详解:
-r:创建系统用户(UID<1000)-m:创建家目录-U:创建同名用户组-d /opt/tomcat:指定家目录-s /bin/false:禁止登录
3. 下载安装Tomcat
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
sudo tar xvf apache-tomcat-9.0.56.tar.gz -C /opt/tomcat --strip-components=1
4. 设置文件权限
sudo chown -R tomcat: /opt/tomcat # 修改所有者
sudo chmod -R 755 /opt/tomcat # 目录权限
sudo chmod 400 /opt/tomcat/conf/* # 配置文件权限
权限说明:
755:所有者有完全权限,其他用户可读/执行400:仅所有者可读(保护敏感配置)
5. 配置systemd服务
# /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
关键配置:
Type=forking:Tomcat以守护进程模式运行- 环境变量指定JVM内存参数
- 使用非root用户运行
6. 启动并启用服务
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat
二、关键概念解析
7. 配置文件权限设为400的原因
防止非授权用户读取/修改敏感配置(如数据库密码),仅允许所有者(tomcat用户)读取。
8. chmod -R 755 /opt/tomcat 作用
- 7:所有者有rwx权限
- 5:其他用户有r-x权限
确保:- Tomcat进程可正常运行
- 管理员可查看日志/配置文件
9. 为何不全局设为400?
需要平衡安全性与功能性:
- 日志文件需被监控工具读取
- 管理员需查看配置
- 其他服务可能需要集成访问
10. 用户访问与文件权限的关系
用户通过HTTP访问Tomcat服务,不直接访问文件系统。文件权限影响的是:
- 系统管理员维护
- 其他系统服务集成
- 日志收集工具操作
11. 创建用户时使用sudo的原因
- 避免直接使用root账户操作,降低误操作风险
- 遵循最小权限原则
- 审计更清晰(sudo命令记录在日志中)
12. useradd 参数详解
| 参数 | 作用 | 示例值 |
|---|---|---|
-r | 创建系统用户 | - |
-m | 创建家目录 | - |
-U | 创建同名用户组 | - |
-d | 指定家目录路径 | /opt/tomcat |
-s | 设置登录shell | /bin/false |
13. tomcat.service脚本解析
[Unit]
Description=服务描述
After=network.target # 启动顺序依赖
[Service]
Type=forking # 守护进程模式
User=tomcat # 运行用户
Environment="KEY=VAL" # 环境变量
ExecStart=启动命令
Restart=always # 故障自动重启
[Install]
WantedBy=multi-user.target # 系统启动级别
三、安全部署Nginx
14. 安全部署Nginx流程
# 1. 创建专用用户
sudo useradd -r -m -U -d /var/lib/nginx -s /bin/false nginx
# 2. 修改配置文件
sudo sed -i 's/user .*/user nginx;/' /etc/nginx/nginx.conf
# 3. 设置目录权限
sudo chown -R nginx:nginx /var/{lib,log}/nginx /etc/nginx
# 4. 创建systemd覆盖配置
sudo mkdir /etc/systemd/system/nginx.service.d
echo -e "[Service]\nUser=nginx\nGroup=nginx" | sudo tee /etc/systemd/system/nginx.service.d/override.conf
# 5. 启动服务
sudo systemctl daemon-reload
sudo systemctl restart nginx
15. systemd覆盖文件作用
- 修改服务配置而不直接编辑原文件
- 避免软件升级时配置被覆盖
- 文件名可自定义(如
user.conf)
16. Nginx关键目录
| 目录 | 用途 |
|---|---|
/etc/nginx | 配置文件 |
/var/log/nginx | 日志文件 |
/var/lib/nginx | 缓存/临时文件 |
/usr/share/nginx | 默认网站根目录 |
四、网络与安全配置
17. 开放8088端口
# firewalld方式(推荐)
sudo firewall-cmd --permanent --add-port=8088/tcp
sudo firewall-cmd --reload
# iptables方式
sudo iptables -A INPUT -p tcp --dport 8088 -j ACCEPT
sudo iptables-save
18. SELinux核心作用
- 强制访问控制:限制进程/用户权限
- 攻击防护:即使服务被入侵,也能限制破坏范围
- 审计能力:记录所有安全决策日志
19. 开放端口时SELinux处理
# 1. 添加端口规则(不需关闭SELinux)
sudo semanage port -a -t http_port_t -p tcp 8088
# 2. 验证规则
sudo semanage port -l | grep http_port_t
五、Tomcat部署规范
20. WebApp部署注意事项
| 项目 | 说明 |
|---|---|
| 项目名 | 决定访问路径(如myapp.war → http://host:port/myapp) |
| ROOT目录 | 特殊目录,映射到根路径(http://host:port/) |
| 安全建议 | 生产环境禁用autoDeploy,使用版本化部署(如/webapps/app-v1.0.0) |
21. 设置默认应用方法
<!-- conf/server.xml -->
<Context path="" docBase="myapp" />
以上内容完整覆盖您提供的所有技术点,按逻辑分类整理,关键操作附带命令和解释说明。
259

被折叠的 条评论
为什么被折叠?



