美文网首页
Nginx配置

Nginx配置

作者: 慕小牧 | 来源:发表于2018-08-21 10:32 被阅读37次

    nginx 服务器搭建

    前言

    之前不知道是因为腾讯云出了 bug 还是咋的,已经毕业的学生证还是可以在腾讯云上购买学生套餐,于是花了 300 不到买了 3 年的服务器,买完之后就搁置在一盘没有怎么用了。

    最近有想法弄点自己的小东西,需要挂载到服务器上,于是就拿出了尘封已久的服务器,搭建下环境了,也好了解下怎么简单的搭建服务器。

    搭建

    nginx 安装

    通过阿里云控制台登录控制台,或者通过本地ssh登录服务器:

    ssh root@server # server 是你服务器的ip地址
    

    之后会让输入密码,输入之后就登录成功了。

    然后我们安装nginx,通过yum命令安装:

    yum install -y nginx
    

    等待一会后,nginx 就安装上了,然后我们启动nginx

    service nginx start
    

    ::: tip 其他命令
    service nginx restart # 重启nginx服务
    service nginx stop # 停止nginx服务
    :::

    然后打开浏览器,输入服务器的 ip 地址,如果出现以下界面就表示成功了:

    搭建成功

    是不是很简单?

    配置 https

    之所以想配置https是因为以下几点:

    • 安全
    • 利于 SEO
    • 防劫持

    因为穷,没钱购买 ssl 安全证书。。。只好用免费的了。。。这里使用的是certbot-auto免费生成密钥。

    首先安装certbot-auto

    wget https://dl.eff.org/certbot-auto
    

    安装结束后,我们修改下certbot-auto所在目录的权限并暂时关闭nginx服务:

    chown a+x ./certbot-auto
    service nginx stop
    

    然后我们使用certbot-auto生成证书,生成证书有两种模式:

    • standalone
    • webroot

    区别
    使用standalone模式生成的证书,如果到期后,更新证书需要重启服务,而webroot模式不需要,因为webroot模式会在项目目录下生成一个隐藏的文件,并且通过这个隐藏文件来验证,所以到期更新证书的时候不需要重启服务。

    使用 standalone 生成证书

    ./certbot-auto certonly --standalone --email 邮箱地址 -d 域名1
    

    提示
    如果多个域名,直接后面接连跟着 -d 域名地址,比如:./certbot-auto certonly --standalone -d 域名1 -d 域名2

    使用 webroot 生成证书

    ./certbot-auto certonly --webroot --email 邮箱地址 -w 项目地址 -d 域名1 -d 域名2
    

    生成后的证书会存在/etc/letsencrypt/live/你的域名/这个目录中。

    最后一步就是配置nginx

    vim /etc/nginx/nginx.conf  # 打开nginx的配置文件
    

    server中配置ssl

    server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  www.yourdomain.com yourdomain.com; # 域名绑定
        root         /var/project/;  # 项目目录
    
        # 证书配置
        ssl on;
        ssl_certificate "/etc/letsencrypt/live/yourdomain/fullchain.pem";
        ssl_certificate_key "/etc/letsencrypt/live/yourdomain/privkey.pem";
    
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
    
        location / {
        }
    }
    

    配置好后使用service nginx start重启nginx就可以了。

    这样访问你自己的域名就可以了,比如我自己的https://weixiaomu.com

    效果图如下:

    https效果

    但是,如果我想普通访问域名时自动跳到https下该怎么设置?

    不难,我们在nginx配置文件中,新建立一个server,当访问http的时候,重定向到https即可:

    server {
        listen  80;
        server_name     yourdomain.com;
        return  301 https://$server_name$request_uri;
    }
    

    然后重启下nginx就可以了。

    相关文章

      网友评论

          本文标题:Nginx配置

          本文链接:https://www.haomeiwen.com/subject/jssdiftx.html