Products
96SEO 2025-09-11 16:54 4
服务器部署是每个开发者或运维人员必须掌握的核心技能, 从零开始搭建一套可用的服务环境,既需要清晰的思路,也需要扎实的操作细节。本文将从前期准备到到头来部署, 为你拆解服务器部署的全流程,涵盖资料清单、环境配置、项目部署及平安加固等关键环节,助你轻松搞定服务器部署。
服务器部署前,先说说要确认硬件配置是否满足需求。包括CPU核心数、内存大小、硬盘类型及容量,这些直接决定了应用的运行效率。比方说小型Web应用建议至少2核4G内存,数据库服务则推荐4核8G以上。一边,记录下服务器的公网IP和内网IP,以及默认的登录凭证。
根据项目类型准备对应的运行环境。Java项目需JDK、Tomcat或Spring Boot;Node.js项目需Node.js和npm;Python项目可能需要Python虚拟环境和相关依赖包。还有啊, 数据库是常见需求,MySQL 5.7/8.0、Redis 6.0等版本需提前确认,并下载对应的安装包或配置好yum/apt源。
确保项目代码已打包成可部署格式, 如Java项目的WAR/JAR包、前端项目的静态文件压缩包。一边,整理好配置文件模板,比方说数据库连接参数、Nginx反向代理配置、域名证书等。若涉及数据库,还需导出数据结构脚本和初始数据脚本,避免部署后重新配置。
准备远程连接工具, 如Xshell、FinalShell或PuTTY,用于命令行操作;文件传输工具推荐FileZilla或WinSCP,用于上传项目文件;若需批量操作,可提前编写Shell脚本。还有啊,准备监控工具如top、htop或云服务器自带的监控平台,方便后续排查性能问题。
通过SSH工具连接服务器, 首次登录后建议修改默认密码,施行passwd
命令更新密码。接着更新系统软件包, CentOS系统施行yum update -y
Ubuntu系统施行apt update && apt upgrade -y
确保系统组件为最新版本,避免平安漏洞。设置时区为中国时区, 施行timedatectl set-timezone Asia/Shanghai
并同步时间,使用ntpdate ntp.aliyun.com
确保时间准确。
云服务器需在控制台配置平安组, 开放必要端口:SSH、HTTP、HTTPS,若数据库在本地部署,还需开放数据库端口。服务器内部防火墙需同步放行端口,比方说CentOS施行firewall-cmd --permanent --add-port=80/tcp
并重载防火墙firewall-cmd --reload
。关闭SELinux,避免后续权限问题。
若服务器新增硬盘,需先分区格式化并挂载。施行fdisk -l
查看磁盘信息, 使用fdisk /dev/vdb
分区,格式化分区mkfs.ext4 /dev/vdb1
创建挂载目录mkdir /data
挂载磁盘mount /dev/vdb1 /data
并设置开机自动挂载。项目目录建议规划/app
存放应用, /data
存放数据,/var/log
存放日志,便于管理。
Java项目需先安装JDK, 以CentOS为例,下载JDK8 RPM包wget https://repo.huaweicloud.com/java/jdk/8u301-b10/jdk-8u301-linux-x64.rpm
安装rpm -ivh jdk-8u301-linux-x64.rpm
配置环境变量vi /etc/profile
添加:
bash
export JAVA_HOME=/usr/java/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
施行source /etc/profile
使配置生效,验证安装java -version
显示版本信息即成功。
以MySQL为例, 下载yum源wget https://repo.mysql.com/mysql-community-release-el7-7.rpm
安装rpm -ivh mysql-community-release-el7-7.rpm
安装MySQLyum install -y mysql-community-server
启动服务systemctl start mysqld
查看临时密码grep 'temporary password' /var/log/mysqld.log
登录后修改密码ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourPassword!';
创建项目数据库CREATE DATABASE db_name DEFAULT CHARACTER SET utf8mb4;
。
推荐使用Nginx作为反向代理, 安装yum install -y nginx
启动systemctl start nginx
配置文件vi /etc/nginx/nginx.conf
在http模块添加:
nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
检查配置nginx -t
重载nginx -s reload
确保Nginx正常监听80端口。
使用FileZilla连接服务器, 将项目包上传至/app
目录,比方说/app/webapp
。设置目录权限, 施行chown -R nginx:nginx /app/webapp
chmod -R 755 /app/webapp
避免因权限不足导致403错误。若为Spring Boot项目, 上传JAR包至/app
施行nohup java -jar app.jar> /var/log/app.log 2>&1 &
启动服务。
若有数据库脚本,登录MySQL施行source /data/init.sql
导入数据。修改项目配置文件中的数据库连接信息, 比方说vi /app/webapp/src/main/resources/application.yml
设置:
yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/db_name?useSSL=false&serverTimezone=UTC
username: root
password: YourPassword
保存后重启应用服务,确保数据库连接正常。
启动应用后 通过浏览器访问http://服务器IP
若显示项目首页则部署成功。检查服务状态, Java项目使用ps -ef | grep java
Nginx使用nginx -t
查看日志tail -f /var/log/nginx/error.log
排查问题。若使用域名,需在DNS管理中添加A记录,将域名指向服务器IP,并配置SSL证书。
禁止直接使用root登录, 创建普通用户useradd deployer
设置密码passwd deployer
编辑/etc/ssh/sshd_config
设置PermitRootLogin no
重启SSH服务systemctl restart sshd
。修改SSH默认端口,在平安组和防火墙中开放新端口,减少暴力破解风险。安装fail2ban, 封禁频繁登录失败的IP,施行yum install -y fail2ban
配置/etc/fail2ban/jail.local
启用SSH防护。
设置定时任务, 施行crontab -e
添加系统更新任务0 3 * * 0 yum update -y
日志清理任务0 2 * * * find /var/log -name "*.log" -mtime +7 -delete
。监控服务器状态, 使用top
查看CPU内存占用,df -h
检查磁盘空间,设置告警,避免服务因资源不足或故障宕机。
部署前做好代码和数据库备份, 使用tar -czf backup.tar.gz /app
打包项目,mysqldump -u root -p db_name> backup.sql
备份数据库。若服务异常,可通过日志定位问题,快速回滚版本或重启服务。建立故障处理流程,比方说“访问超时→检查Nginx日志→确认服务端口→重启应用→联系技术支持”。
服务器部署看似复杂, 但只要掌握了“准备资料→初始化配置→环境搭建→项目部署→平安维护”的流程,每个环节细化操作步骤,就能顺利完成。实际操作中多积累经验,遇到问题善用日志和搜索引擎,逐步就能成为部署高手。记住稳定的服务器环境是业务运行的基础,耐心和细致是关键。
Demand feedback