如何在CentOS系统上安装Nginx?
准备工作
在开始安装Nginx前,需确保系统处于最新状态,打开终端,执行以下命令更新软件包:
sudo yum update -y
若系统未安装EPEL(Extra packages for Enterprise Linux)仓库,需手动添加,以获取更多软件包支持:
sudo yum install epel-release -y
安装Nginx
1、通过Yum安装
更新完成后,直接运行安装命令:
sudo yum install nginx -y
2、启动Nginx服务
安装完成后,启动Nginx并设为开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
3、验证安装
访问服务器IP或域名,若看到“Welcome to Nginx”页面,说明安装成功,若无法访问,需检查防火墙设置:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
基础配置与优化
1、配置文件结构
Nginx主配置文件位于/etc/nginx/nginx.conf
,站点配置通常在/etc/nginx/conf.d/
目录,建议每个站点单独创建文件,
sudo vi /etc/nginx/conf.d/example.conf
2、性能调优
调整Worker进程数
在nginx.conf
中,根据CPU核心数设置worker_processes
:
worker_processes auto;
优化连接数
在http
块内增加以下参数:
worker_connections 1024; keepalive_timeout 65;
3、启用Gzip压缩
在http
块中添加以下内容,减少资源传输时间:
gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
常见问题排查
1、端口冲突
若Nginx启动失败,可能是80或443端口被占用,使用以下命令检查:
sudo netstat -tulnp | grep ':80\|\:443'
2、权限问题
若出现“Permission denied”错误,检查目录权限或SELinux状态:
sudo setenforce 0 # 临时关闭SELinux sudo chmod -R 755 /var/www/html # 调整目录权限
3、配置文件语法错误
修改配置后,务必执行语法检查:
sudo nginx -t
安全建议
1、限制敏感信息暴露
在配置文件中隐藏Nginx版本号:
server_tokens off;
2、配置SSL证书
使用Let's Encrypt免费证书,提升网站安全性:
sudo yum install certbot python3-certbot-nginx -y sudo certbot --nginx
3、防范DDoS攻击
在nginx.conf
中限制单个IP的请求频率:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
个人观点
Nginx因其轻量、高效的特点,成为多数站长部署服务的首选,实际使用中,建议结合业务需求调整配置参数,例如高并发场景下可适当增加Worker连接数,定期检查日志文件(/var/log/nginx/access.log
与error.log
)有助于快速定位问题,对于新手,初期可借助开源管理面板(如Webmin)简化操作,但熟悉命令行仍是提升运维能力的关键,保持Nginx版本更新,避免因旧版本漏洞导致安全风险。
推荐阅读
-
Notepad++ 插件推荐:代码折叠、语法高亮增强工具合集
-
Emacs Evil 模式:Vim 用户快速上手 Emacs 的过渡方案
-
Vim 寄存器深度解析:多缓冲区操作与复杂文本处理
-
Atom 主题切换:Material Design 与扁平化风格对比推荐
-
Lightly IDE 快捷键:Python 开发者必学的效率提升操作
-
Xcode 模拟器调试:多设备同步与性能监控技巧
-
PyCharm 代码格式化:黑魔法工具 Black 与自动规范配置
-
IntelliJ IDEA Docker 集成:微服务本地调试与镜像构建
-
VS Code Remote SSH:远程服务器开发环境搭建全流程
-
Retool 数据库连接:支持 MySQL、PostgreSQL 等多数据源配置