Skip to content

Centos 安装 Nginx

Updated: at 02:46 AM

安装

更新软件包

yum update -y

查看是否存在

yum list | grep nginx

不存在则添加红帽源

sudo yum install -y epel-release

更新软件包

yum update -y

安装 Nginx

yum install -y nginx

配置

修改 Nginx 配置

/etc/nginx/nginx.conf 中引入了 /etc/nginx/conf.d 中的所有代码,所以直接到 /etc/nginx/conf.d 创建新配置文件就可以,/etc/nginx/nginx.conf 中的配置作为 404 兜底。

创建自定义配置文件

在/etc/nginx/conf.d 创建自定义配置文件 my.conf

http 配置

server {
    listen 80;
    server_name  domain;
    location / {
         root /usr/share/nginx/html;
         index  index.html index.htm;
     }
    error_page 497  https://$host$uri?$args;
}

https 配置

server {
    listen 80;
    listen 443 ssl;
    server_name  domain;
    location / {
         root /usr/share/nginx/html;
         index  index.html index.htm;
     }

    ssl on;
    ssl_certificate /etc/nginx/ssl/domain.crt;
    ssl_certificate_key /etc/nginx/ssl/domain.key;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
    ssl_prefer_server_ciphers  on;

    error_page 497  https://$host$uri?$args;
}

放开相关端口

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

控制

启动 Nginx

systemctl start nginx

停止 Nginx

systemctl stop nginx

重启 Nginx

systemctl restart nginx

查看运行状态

systemctl status nginx

开机自启动

systemctl enable nginx

开机不启动

systemctl disable nginx

证书

一键安装 ssl 生成器

# 安装生成器
curl  https://get.acme.sh | sh

# 创建命令别名
echo 'alias acme.sh=~/.acme.sh/acme.sh' >> ~/.bashrc
source ~/.bashrc

生成证书

# 配置阿里云环境变量
export Ali_Key="**********"
export Ali_Secret="**********"

# 生成证书
acme.sh --issue --dns dns_ali -d domain

拷贝证书到 Nginx

# 创建证书目录
mkdir -p /etc/nginx/ssl

# 拷贝证书
acme.sh --install-cert -d domain \
--key-file       /etc/nginx/ssl/domain.key  \
--fullchain-file /etc/nginx/ssl/domain.crt \
--reloadcmd     "service nginx force-reload"