CentOS 7 Nginx安装与配置详解
一、Nginx简介
Nginx(engine x)是一个高性能的HTTP和反向代理服务器,以其高并发处理能力、低资源消耗和灵活的配置系统被广泛应用于各种Web服务场景,在CentOS 7上安装和管理Nginx是构建高效Web服务的重要步骤,本文将详细介绍如何在CentOS 7上安装Nginx,并通过表格方式展示相关命令及其功能。
二、安装前准备
确保你的系统是CentOS 7,并且拥有sudo权限的用户登录,检查系统中是否已安装其他Web服务(如Apache),以避免端口冲突。
三、安装Nginx
1. 安装EPEL仓库(如果尚未安装)
EPEL(Extra Packages for Enterprise Linux)仓库提供了许多常用的软件包,包括Nginx。
sudo yum install epelrelease y
命令 | 功能 |
sudo yum install epelrelease y | 安装EPEL仓库 |
2. 安装Nginx
通过EPEL仓库安装Nginx非常简单:
sudo yum install nginx y
命令 | 功能 |
sudo yum install nginx y | 通过EPEL仓库安装Nginx |
3. 启动Nginx并设置开机自启
sudo systemctl start nginx sudo systemctl enable nginx
命令 | 功能 |
sudo systemctl start nginx | 启动Nginx服务 |
sudo systemctl enaBLe nginx | 设置Nginx开机自启 |
4. 验证安装
在浏览器中访问http://<你的服务器IP>/
,如果看到Nginx的欢迎页面,说明安装成功。
四、Nginx配置管理
Nginx的主配置文件位于/etc/nginx/nginx.conf
,可以通过修改该文件来调整Nginx的全局配置,每个虚拟主机可以拥有独立的配置文件,通常存放在/etc/nginx/conf.d/
目录下。
1. 基本配置示例
编辑/etc/nginx/conf.d/default.conf
,可以看到一个基本的虚拟主机配置示例:
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
指令 | 功能 |
listen 80; | 监听80端口 |
server_name _; | 匹配所有服务器名称 |
root /usr/share/nginx/html; | 设置网站根目录 |
location / {} | 定义根目录的访问规则 |
error_page | 自定义错误页面 |
2. 配置HTTPS
为了使网站支持HTTPS,需要配置SSL证书,安装Certbot以自动获取和管理Let's Encrypt的SSL证书:
sudo yum install certbot python2certbotnginx y
命令 | 功能 |
sudo yum install certbot python2certbotnginx y | 安装Certbot及其Nginx插件 |
运行Certbot获取证书:
sudo certbot nginx d yourdomain.com d www.yourdomain.com
命令 | 功能 |
sudo certbot nginx d yourdomain.com d www.yourdomain.com | 为指定域名获取SSL证书 |
Certbot会自动修改Nginx配置文件以启用HTTPS。
五、常用Nginx管理命令
命令 | 功能 |
sudo systemctl start nginx | 启动Nginx服务 |
sudo systemctl stop nginx | 停止Nginx服务 |
sudo systemctl restart nginx | 重启Nginx服务 |
sudo systemctl reload nginx | 重新加载Nginx配置 |
nginx t | 测试Nginx配置文件是否正确 |
sudo journalctl u nginx.service | 查看Nginx日志 |
六、常见问题及解答(FAQs)
Q1: Nginx启动失败,提示“port already in use”怎么办?
A1: 这是由于80端口已被其他服务占用,可以先停止占用80端口的服务,或者修改Nginx的监听端口,编辑/etc/nginx/conf.d/default.conf
,将listen 80;
改为listen 8080;
,然后重启Nginx。
Q2: 如何更改Nginx默认网站根目录?
A2: 编辑/etc/nginx/conf.d/default.conf
或相应的虚拟主机配置文件,找到root
指令,将其后的路径修改为你希望的目录即可,要将根目录改为/var/www/html
,则将root
指令改为root /var/www/html;
,保存后重新加载Nginx配置:sudo systemctl reload nginx
。