Centos7 Nginx安装与配置

安装Nginx

Nginx(engine X)是一个高性能的HTTP和反向代理服务器.

  1. 查看Centos版本:

    1
    cat /etc/redhat-release
  2. Yum源:

    1
    2
    3
    4
    # 添加源
    sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    # 查看添加结果
    sudo yum repolist

    repo id和repo name的两列可以看到nginx repo已经安装了.

    当然, 也可以通过自己添加Nginx.repo:

    1
    sudo vim /etc/yum.repos.d/nginx.repo
    1
    2
    3
    4
    5
    6
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
  3. 安装:

    1
    sudo yum install nginx
  4. 启动:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 启动服务
    sudo systemctl start nginx
    # 设置开机启动
    sudo systemctl enable nginx
    # 停止服务
    sudo systemctl stop nginx
    # 重启服务
    sudo systemctl restart nginx
    # 重新加载
    sudo systemctl reload nginx

配置Nginx

  1. 防火墙配置:

    1
    2
    3
    4
    # nginx默认绑定的端口是http协议的默认端口(80)
    sudo firewall-cmd --zone=public --add-service=http --permanent
    # 重载
    sudo firewall-cmd --reload
  2. 反向代理:

    对于Centos7的SELinux, 使用反向代理需要打开网络访问权限:

    1
    sudo setsebool httpd_can_network_connect 1
  1. 添加配置文件:

    在Nginx的/conf.d/配置文件夹中, 添加相应的网络服务的配置文件:

    1
    2
    cd /etc/nginx/conf.d
    vim *.conf # 相应的服务名

    在其中, 需要添加对端口的监听以及对各种服务文件的访问:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    server {
    listen 80; # 监听80端口
    listen [::]:80;
    server_name wiidu.net www.wiidu.net; # 网址
    return 301 https://www.wiidu.net$request_uri; # 重定向www
    }
    server {
    listen 443 ssl http2 default; # 监听443端口
    listen [::]:443 ssl http2 default;
    server_name www.wiidu.net;
    # ssl证书存放位置
    ssl_certificate "/etc/letsencrypt/live/wiidu.net/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/wiidu.net/privkey.pem";
    # ssl_session_cache shared:SSL:1m;
    # ssl_session_timeout 10m;
    # ssl_ciphers HIGH:!aNULL:!MD5;
    # ssl_prefer_server_ciphers on;
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    # 生成日志存放位置
    access_log /var/log/nginx/wiidu_access.log;
    error_log /var/log/nginx/wiidu_error.log;
    error_page 404 = /404.html;

    # 访问网络服务根目录
    location / {
    root /var/www/wiidu.net/;
    # 默认文件
    index index.html;
    }

    # 添加错误页面, 利于搜索引擎及良好的用户体验
    error_page 404 /404.html;
    location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
    }
    server{
    listen 443;
    listen [::]:443;
    server_name wiidu.net;
    return 301 https://www.wiidu.net$request_uri;
    }

    Notice:在这里, 有两个的server的重定向是为了让http和https的wiidu.net地址跳转到https://www.wiidu.net, 以便访问统计不会分流, 以及一些软件API对www的要求.

Reference

Centos7 下 yum 安装和配置 Nginx

0%