在Centos下怎么安装Nginx

发布时间:2022-04-29 16:06:58 作者:iii
来源:亿速云 阅读:159
# 在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

方法一:通过Yum仓库安装(推荐)

1. 添加Nginx官方仓库

默认情况下,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

2. 安装Nginx

sudo yum install nginx -y

3. 启动Nginx服务

sudo systemctl start nginx
sudo systemctl enable nginx

检查服务状态:

sudo systemctl status nginx

4. 验证安装

打开浏览器访问服务器IP,或使用curl命令:

curl 127.0.0.1

如果看到”Welcome to nginx!“页面,说明安装成功。


方法二:编译源码安装(获取最新特性)

1. 安装编译依赖

sudo yum groupinstall "Development Tools" -y
sudo yum install pcre-devel zlib-devel openssl-devel -y

2. 下载源码包

访问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

3. 配置编译选项

./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module

4. 编译安装

make && sudo make install

5. 创建系统服务

创建服务文件/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

基本配置与管理

配置文件结构

常用命令

# 测试配置
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

SSL证书配置(可选)

使用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

性能调优建议

  1. 调整worker进程数(在nginx.conf中):
worker_processes auto;
  1. 启用gzip压缩:
gzip on;
gzip_types text/plain text/css application/json application/javascript;
  1. 设置缓存头(针对静态资源):
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字的要求。

推荐阅读:
  1. CentOS 6下编译安装Nginx
  2. CentOS7下安装Nginx

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

centos nginx

上一篇:Windows nginx安装配置的方法

下一篇:Nginx网站根目录更改导致403怎么解决

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》