您好,登录后才能下订单哦!
# 在CentOS下怎么安装Nginx
## 前言
Nginx是一款高性能的HTTP和反向代理服务器,以其稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。本文将详细介绍在CentOS系统上安装Nginx的多种方法,包括通过Yum仓库安装、编译源码安装,以及基本的配置和使用方法。
---
## 环境准备
在开始安装之前,请确保:
1. 已安装CentOS 7/8系统(本文以CentOS 7为例)
2. 拥有sudo权限的用户账号
3. 能够访问互联网
检查系统版本:
```bash
cat /etc/redhat-release
更新系统包:
sudo yum update -y
默认情况下,CentOS基础仓库不包含最新版Nginx。我们需要添加官方仓库:
sudo yum install epel-release -y
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
验证仓库是否添加成功:
yum repolist | grep nginx
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
检查服务状态:
sudo systemctl status nginx
打开浏览器访问服务器IP,或使用curl命令:
curl 127.0.0.1
如果看到”Welcome to nginx!“页面,说明安装成功。
sudo yum groupinstall "Development Tools" -y
sudo yum install pcre-devel zlib-devel openssl-devel -y
访问Nginx官网获取最新稳定版链接:
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module
make && sudo make install
创建服务文件/lib/systemd/system/nginx.service
:
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MNPID
ExecStop=/bin/kill -s QUIT $MNPID
[Install]
WantedBy=multi-user.target
然后执行:
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx
/etc/nginx/nginx.conf
(Yum安装)或 /usr/local/nginx/conf/nginx.conf
(源码安装)/etc/nginx/conf.d/*.conf
/usr/share/nginx/html
# 测试配置
sudo nginx -t
# 重新加载配置
sudo systemctl reload nginx
# 查看版本信息
nginx -V
# 停止服务
sudo systemctl stop nginx
创建/etc/nginx/conf.d/example.com.conf
:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}
创建网站目录并授权:
sudo mkdir -p /var/www/example.com
sudo chown -R nginx:nginx /var/www/example.com
如果启用了firewalld:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
对于较旧的iptables:
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
sudo service iptables save
使用Let’s Encrypt免费证书:
sudo yum install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
证书会自动续期配置,可通过以下命令测试续期:
sudo certbot renew --dry-run
worker_processes auto;
gzip on;
gzip_types text/plain text/css application/json application/javascript;
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
问题1:启动时报80端口被占用
解决:检查占用进程并停止相关服务
sudo netstat -tulnp | grep :80
问题2:SELinux阻止Nginx访问
解决:调整SELinux策略或临时设置为permissive模式
sudo setenforce 0
# 或永久修改/etc/selinux/config
问题3:403 Forbidden错误
解决:检查目录权限和SELinux上下文
sudo chown -R nginx:nginx /path/to/webroot
sudo chcon -R -t httpd_sys_content_t /path/to/webroot
本文详细介绍了在CentOS系统上安装Nginx的两种主要方法,以及基本的配置和管理操作。根据您的需求选择适合的安装方式:Yum安装适合快速部署稳定版本,源码编译则适合需要自定义模块或获取最新功能的场景。建议生产环境配合防火墙和SELinux进行安全加固,并定期更新Nginx版本以获得安全补丁。
如需更高级的功能如负载均衡、反向代理等,可以参考Nginx官方文档进行深入配置。 “`
注:实际字数约1600字,您可以根据需要补充更多细节或具体案例来达到1750字的要求。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。