在CentOS 7上安装Nginx前,请确保:
1. 拥有root权限或sudo权限的账户
2. 系统已更新到最新状态:sudo yum update
3. 确保系统防火墙配置允许HTTP(80)和HTTPS(443)端口
添加EPEL仓库:
sudo yum install epel-release
安装Nginx:
sudo yum install nginx
添加Nginx官方仓库:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装Nginx:
sudo yum install nginx
启动Nginx服务:
sudo systemctl start nginx
设置开机启动:
sudo systemctl enable nginx
检查运行状态:
sudo systemctl status nginx
其他常用命令:
# 停止服务
sudo systemctl stop nginx
# 重启服务
sudo systemctl restart nginx
# 重新加载配置(不中断服务)
sudo systemctl reload nginx
允许HTTP和HTTPS流量:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
在浏览器中输入服务器IP地址,应该能看到Nginx欢迎页面。或者使用curl命令:
curl -I 127.0.0.1
应该返回类似以下响应:
HTTP/1.1 200 OK
Server: nginx/1.20.1
...
Nginx主配置文件位于:
/etc/nginx/nginx.conf
默认服务器块配置位于:
/etc/nginx/conf.d/default.conf
创建新的配置文件:
sudo vi /etc/nginx/conf.d/example.com.conf
添加以下内容:
server {
listen 80;
server_name example.com www.example.com;
location / {
root /var/www/example.com/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
创建网站目录:
sudo mkdir -p /var/www/example.com/html
创建测试页面:
sudo vi /var/www/example.com/html/index.html
添加简单HTML内容
设置权限:
sudo chown -R nginx:nginx /var/www/example.com
sudo chmod -R 755 /var/www
测试配置并重新加载:
sudo nginx -t
sudo systemctl reload nginx
检查是否有其他服务占用了80端口:
sudo netstat -tulnp | grep :80
检查错误日志:
sudo tail -f /var/log/nginx/error.log
bash
getenforce
如果是Enforcing模式,可以临时设置为Permissive:
bash
sudo setenforce 0
或为目录添加正确的SELinux上下文:
bash
sudo chcon -Rt httpd_sys_content_t /var/www/example.com/html
使用以下命令测试配置语法:
sudo nginx -t
调整worker进程数(在nginx.conf中):
worker_processes auto; # 通常设置为CPU核心数
启用gzip压缩:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
配置静态文件缓存:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
通过以上步骤,您应该可以在CentOS 7上成功安装并配置Nginx服务器。根据实际需求,您可以进一步配置负载均衡、反向代理、HTTPS等高级功能。