网站服务器设置是确保网站稳定、安全、高效运行的核心环节,涉及从基础环境搭建到高级优化的多个层面,正确的配置不仅能提升用户体验,还能有效抵御安全威胁,适应业务增长需求,以下从环境准备、服务安装、安全加固、性能优化等方面详细说明具体操作步骤和注意事项。
基础环境准备
在开始服务器设置前,需明确服务器用途(如Web服务、数据库服务、缓存服务等)及预期负载,选择合适的操作系统,主流选择包括Linux发行版(如Ubuntu 22.04、CentOS 7+),因其稳定性、开源生态及安全性更优。
系统初始化
- 更新系统:执行
sudo apt update && sudo apt upgrade -y
(Ubuntu)或sudo yum update -y
(CentOS),安装所有安全补丁和基础依赖包(如curl
,wget
,vim
)。 - 配置网络:确保服务器有固定公网IP(或内网IP),设置主机名(如
sudo hostnamectl set-hostname webserver
),便于后续管理。 - 创建用户:避免直接使用root账户,创建具有sudo权限的普通用户(如
adduser adminuser
,执行visudo
赋予NOPASSWD:ALL
权限)。
Web服务器安装与配置
Web服务器是网站服务的核心,常用软件包括Nginx和Apache,可根据需求选择(Nginx擅长高并发静态资源,Apache支持动态模块更灵活)。
Nginx安装与配置
-
安装:Ubuntu执行
sudo apt install nginx -y
,CentOS执行sudo yum install nginx -y
。 -
核心配置文件:位于
/etc/nginx/nginx.conf
,虚拟主机配置通常存放在/etc/nginx/sites-available/
(需通过ln -s
链接到sites-enabled/
生效)。 -
虚拟主机示例:
server { listen 80; server_name example.com www.example.com; root /var/www/html; index index.html index.php; location / { try_files $uri $uri/ =404; } location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
-
启动与检查:执行
sudo systemctl start nginx
,sudo systemctl enable nginx
(开机自启),通过nginx -t
检查配置语法,curl -I http://localhost
测试访问。
Apache安装与配置
- 安装:Ubuntu执行
sudo apt install apache2 -y
,CentOS执行sudo yum install httpd -y
。 - 核心配置文件:
/etc/apache2/apache2.conf
(Ubuntu)或/etc/httpd/conf/httpd.conf
(CentOS),虚拟主机配置在sites-available/
(Ubuntu)或conf.d/
(CentOS)。 - 虚拟主机示例:
<VirtualHost *:80> ServerName example.com DocumentRoot /var/www/html <Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
- 启动与检查:执行
sudo systemctl start apache2
(Ubuntu)或httpd
(CentOS),sudo systemctl enable apache2
,通过apachectl configtest
检查配置,curl -I http://localhost
测试。
数据库环境搭建
动态网站通常依赖数据库(如MySQL、MariaDB、PostgreSQL),此处以MariaDB(MySQL分支)为例说明。
- 安装:Ubuntu执行
sudo apt install mariadb-server -y
,CentOS执行sudo yum install mariadb-server -y
。 - 安全初始化:执行
sudo mysql_secure_installation
,设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库、授权远程访问(如需)。 - 创建数据库与用户:登录MariaDB(
sudo mysql -u root -p
),执行:CREATE DATABASE website_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'website_user'@'localhost' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON website_db.* TO 'website_user'@'localhost'; FLUSH PRIVILEGES;
- 配置优化:编辑
/etc/mysql/mariadb.conf.d/50-server.cnf
,调整innodb_buffer_pool_size
(建议为物理内存的50%-70%)、max_connections
(根据并发量设置,默认151)。
安全加固措施
服务器安全是网站稳定运行的前提,需从多个层面进行防护。
防火墙配置
- Ubuntu:使用
ufw
,执行sudo ufw allow 22/tcp
(SSH)、80/tcp
(HTTP)、443/tcp
(HTTPS),sudo ufw enable
启用。 - CentOS:使用
firewalld
,执行sudo firewall-cmd --permanent --add-service=ssh
、http
、https
,sudo firewall-cmd --reload
。
SSH安全强化
- 修改默认端口(如
sudo vim /etc/ssh/sshd_config
,将Port 22
改为Port 2222
)。 - 禁用密码登录,启用密钥认证(在
sshd_config
中设置PasswordAuthentication no
,PubkeyAuthentication yes
)。 - 重启SSH服务:
sudo systemctl restart sshd
。
定期更新与备份
- 更新:设置自动更新(Ubuntu编辑
/etc/apt/apt.conf.d/50unattended-upgrades
,CentOS使用yum-cron
)。 - 备份:使用
rsync
或tar
定期备份网站文件(如tar -czf backup_$(date +%F).tar.gz /var/www/html
)和数据库(mysqldump -u root -p website_db > backup.sql
),可结合cron
定时任务自动化执行。
防攻击措施
- 安装fail2ban:
sudo apt install fail2ban -y
,配置/etc/fail2ban/jail.local
,封禁频繁失败登录的IP(如SSH、HTTP暴力破解)。 - 限制文件权限:Web目录权限设置为
755
(sudo chmod -R 755 /var/www/html
),文件权限644
,避免目录执行权限过高。
性能优化策略
针对高并发场景,可通过缓存、压缩、负载均衡等方式提升服务器性能。
启用缓存
- Nginx缓存:配置
proxy_cache_path
,对后端PHP服务或API接口缓存响应结果,减少数据库压力。 - 浏览器缓存:在Nginx/Apache配置中添加
Expires
或Cache-Control
头,对静态资源(CSS、JS、图片)设置长期缓存(如expires 30d;
)。
压缩传输
启用Gzip压缩,减少传输数据量,Nginx配置示例:
gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
Apache需加载mod_deflate
模块并配置:
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain text/css application/json </IfModule>
负载均衡(多服务器场景)
若单服务器性能不足,可通过Nginx反向代理实现负载均衡:
upstream backend { server 192.168.1.10:80; server 192.168.1.11:80; least_conn; # 最少连接数策略 } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; } }
域名与HTTPS配置
绑定域名并启用HTTPS是网站可信的必要条件。
域名解析
在DNS管理平台(如阿里云DNS、Cloudflare)添加A记录,将域名指向服务器公网IP(如example.com A 192.168.1.100
)。
SSL证书配置
推荐使用免费Let’s Encrypt证书,通过Certbot自动申请:
- 安装Certbot:
sudo apt install certbot python3-certbot-nginx -y
。 - 申请证书:
sudo certbot --nginx -d example.com -d www.example.com
,按提示配置自动续期(默认已开启)。 - 配置HTTPS:Nginx自动生成配置,确保包含以下内容:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; }
相关问答FAQs
问题1:如何检查Web服务器是否正常运行?
解答:可通过以下方式检查:
- 命令行测试:使用
curl -I http://localhost
(HTTP)或curl -I https://example.com
(HTTPS),查看返回状态码(200表示正常,404表示资源不存在,502表示后端服务异常)。 - 进程检查:执行
systemctl status nginx
(Nginx)或systemctl status apache2
(Apache),确认服务是否处于active (running)
状态。 - 端口监听检查:使用
netstat -tuln | grep :80
(HTTP)或netstat -tuln | grep :443
(HTTPS),确认端口是否被监听。 - 日志查看:检查Nginx日志(
/var/log/nginx/access.log
)或Apache日志(/var/log/apache2/access.log
),分析访问记录和错误信息。
问题2:网站访问缓慢,服务器设置上可能有哪些优化方向?
解答:网站访问缓慢可从以下服务器设置角度优化:
- 启用缓存:配置Nginx/Apache的静态资源缓存(如
expires
指令)或后端应用缓存(如Redis、Memcached),减少重复计算和数据查询。 - 压缩传输:开启Gzip压缩,缩小传输文件体积(如文本文件可减少70%以上)。
- 优化数据库:检查慢查询日志(
slow_query_log = 1
),对高频SQL添加索引,优化innodb_buffer_pool_size
参数。 - 调整连接数:在Nginx中增加
worker_processes
(CPU核心数)和worker_connections
(总连接数=worker_processes*worker_connections);在Apache中调整MaxRequestWorkers
和MaxConnectionsPerChild
。 - 使用CDN:将静态资源(图片、CSS、JS)托管到CDN节点,降低服务器负载,加速用户访问。
- 升级硬件:若以上优化效果有限,可考虑增加服务器内存(RAM)、升级CPU或使用SSD硬盘,提升I/O性能。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/18673.html