文章目录
{ .ImgAlt }}

本文基于 CentOS 7 下安装配置 Nginx 操作实践记录整理。

一、配置 EPEL 源

sudo yum install -y epel-release
sudo yum -y update

二、安装 Nginx

sudo yum install -y nginx

安装成功后,默认的网站目录为: /usr/share/nginx/html

默认的配置文件为:/etc/nginx/nginx.conf

自定义配置文件目录为: /etc/nginx/conf.d/

三、开启端口 80 和 443

如果你的服务器打开了防火墙,你需要运行下面的命令,打开 80 和 443 端口。

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

如果你的服务器是阿里云 ECS,你还可以通过控制台安全组,打开 80 和 443 端口,或者其他自定义端口。

具体操作路径: 阿里云 ECS 服务器 -》 安全组 -》 配置规则 -》 安全组规则 -》 入方向 -》 添加安全组规则

端口范围: 比如你要打开 80 端口,这里就填写 80/80

优先级: 优先级可选范围为 1-100,默认值为 1,即最高优先级。

示例图如下:

四、操作 Nginx

1.启动 Nginx

systemctl start nginx

2.停止 Nginx

systemctl stop nginx

3.重启 Nginx

systemctl restart nginx

4.查看 Nginx 状态

systemctl status nginx

5.启用开机启动 Nginx

systemctl enable nginx

6.禁用开机启动 Nginx

systemctl disable nginx

五、配置 Nginx

1. 安装 Https 免费证书(以阿里云域名为例)

一键安装 acme.sh

curl  https://get.acme.sh | sh
echo 'alias acme.sh=~/.acme.sh/acme.sh' >> ~/.bashrc
source ~/.bashrc

生成 Https 证书

export Ali_Key="**********"
export Ali_Secret="**********"
acme.sh --issue --dns dns_ali -d domain

其中:

点击阿里云后台,右上角用户头像,菜单中选择 accesskeys。

查看 AccessKey ID 和 Access Key Secret,即对应上面的 Ali_Key 和 Ali_Secret。

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"

https 证书拷贝成功。

目前 https 证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.

2. 配置 nginx

删除/etc/nginx/nginx.conf中的 server 部分代码。

server {
...
}

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

server {
    listen 80;
    listen 443 ssl;
    server_name  domain www.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;
}

其中: root /usr/share/nginx/html; 表示网站文件目录,后面的分号不可省略。

ssl_certificate 和 ssl_certificate_key 指向 https 证书。

error_page 497 https://$host$uri?$args; 这句的作用是,强制 http 跳转到 https。

六、参考文档

  1. How To Install Nginx on CentOS 7
  2. How To Install And Configure NGINX On CentOS 7
  3. How to install Nginx on CentOS 7 or RHEL 7
  4. How To Install Nginx on CentOS 7
  5. How to Install Nginx on CentOS 7
  6. acme.sh
  7. nginx 使用 acme.sh 配置支持 HTTPS 访问
  8. nginx 配置 ssl 实现 https 访问 小白文



如果你有任何疑问,请通过以下方式联系我们:

微信:

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646 雪梦科技交流群

    版权声明:本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。知识共享许可协议
腾讯云学生服务器_学生机_云服务器优惠套餐-云+校园 - 腾讯云