sudo apt update && sudo apt upgrade -y
Nginx作为反向代理和静态资源服务器,负责处理玩家请求。
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
MariaDB是MySQL的替代分支,适合游戏数据的存储(如玩家信息、排行榜)。
sudo apt install mariadb-server mariadb-client -y
sudo mysql_secure_installation
sudo mysql -u root -p
# 在MySQL命令行中执行:
CREATE DATABASE game_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'game_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON game_db.* TO 'game_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
PHP用于处理游戏动态逻辑(如用户登录、数据交互),需安装PHP及常用扩展。
sudo apt install php php-fpm php-mysql php-gd php-mbstring php-curl -y
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
修改以下参数(根据服务器资源调整):listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
pm.max_children = 50 # 并发处理进程数,根据内存调整(每进程约消耗10-20MB内存)
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
保存后重启PHP-FPM:sudo systemctl restart php8.2-fpm
编辑Nginx默认站点配置,添加PHP处理规则。
sudo nano /etc/nginx/sites-available/default
修改server块中的location ~ \.php$部分:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# PHP处理配置
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止访问.htaccess文件
location ~ /\.ht {
deny all;
}
}
sudo nginx -t # 检查语法
sudo systemctl reload nginx
创建PHP信息页面,验证PHP是否能正常解析。
sudo nano /var/www/html/info.php
写入以下内容:
<?php phpinfo(); ?>
保存后,浏览器访问http://服务器IP/info.php,若显示PHP信息页面则表示LNMP环境搭建成功。测试完成后务必删除该文件(避免泄露服务器信息)。
根据游戏类型(如Minecraft、CS2、GTA5私服),选择对应的游戏服务器程序并部署:
sudo apt install openjdk-17-jdk -y # 安装Java运行环境
wget https://launcher.mojang.com/v1/objects/.../server.jar # 下载Minecraft服务器JAR包
java -Xmx2G -Xms1G -jar server.jar nogui # 启动服务器(分配2GB内存)
csgo_server_linux.tar.gz),解压后修改server.cfg配置文件(设置端口、地图、玩家数量),再通过./srcds_run命令启动。FiveM或RAGE Multiplayer平台,下载对应服务器文件,修改server.cfg后启动。游戏服务器需处理大量并发请求,需对LNMP组件进行优化:
worker_processes auto;
events {
worker_connections 1024; # 根据内存调整(每连接约消耗2-4MB内存)
}
location ~* \.(jpg|jpeg|png|gif|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
[mysqld]
innodb_buffer_pool_size = 2G # 假设服务器有4GB内存
query_cache_size = 64M
query_cache_type = 1
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
echo "ulimit -n 65535" | sudo tee -a /etc/profile
source /etc/profile
echo "net.core.somaxconn = 65535" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 65535" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 1024 65535" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p # 应用配置
允许HTTP(80)、HTTPS(443)及游戏端口(如Minecraft的25565、CS2的27015)流量。
sudo ufw allow 'Nginx Full' # 允许HTTP/HTTPS
sudo ufw allow 25565/tcp # 示例:Minecraft端口
sudo ufw allow 27015/tcp # 示例:CS2端口
sudo ufw enable # 启用防火墙
为游戏服务器配置HTTPS,提升数据传输安全性(使用Let’s Encrypt免费证书)。
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示完成证书安装,Nginx会自动配置HTTPS重定向。
game_db)和配置文件(如server.cfg),避免数据丢失。top、htop、netstat等工具监控服务器资源使用情况,及时调整配置。通过以上步骤,即可在Debian上搭建高性能的LNMP游戏服务器,满足玩家的并发需求。