标签 nginx 下的文章


将http请求重定向为https,使所有连接都使用安全的ssl。

重定向所有http请求

以下配置为将所有收到的80端口的请求都重定向到443端口,这会把此ip下的所有域名都转换:

server {
    listen           80;
    listen           [::]:80;
    server_name      _;
    return           301 https://$host$request_uri;
}

listen 80 default_server 表示这是唯一监听80端口的server块
server_name _ 表示监听所有使用的域名

重定向特定域名

以下配置为重定向特定域名的请求,此方式适用于此ip下绑定多个域名的情况:

server {
    listen           80;
    listen           [::]:80;
    server_name      your.domain;
    return           301 https://your.domain$request_uri;
}

443 server block

设定我们的域名只接收443端口的访问:

server {
    listen                443 ssl default_server;
    listen                [::]:443 ssl;
    server_name           foo.com;
}

server {
    listen                443 ssl;
    listen                [::]:443 ssl;
    server_name           bar.com;
}

...

只能设置一个域名为default_server。


acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.

官方说明:https://github.com/Neilpang/acme.sh

安装acme.sh

安装很简单:

apt-get install curl
curl  https://get.acme.sh | sh

安装过程进行了以下几步:

  • 把 acme.sh 安装到你的 root 目录下: /root/.acme.sh/
  • 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书.
  • 在 /root/.bashrc 创建 一个 bash 的 alias: alias acme.sh="/root/.acme.sh/acme.sh"

cronjob 的任务可以使用命令 crontab -e 查看。

阅读全文


我的VPS上的Nginx记得还是一年前安装的,一直没有升级,最近发现版本都到了1.14了,我的还是1.4,就想做一次升级。

由于使用Nginx用到一些配置文件,所以我预计升级会导致配置文件恢复到默认,所以查询了一些资料后,安全的做了升级。

阅读全文


最近有需求做一个类似网盘的功能,方便共享文件给他人,实际上就是把服务器的一个目录设置为可见。发现Nginx支持这一功能。

官方相关文档:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html

在service里的新建需要共享目录的location段修改如下:

location /downloads {
    root /home;
    autoindex on;
    autoindex_exact_size on;
    autoindex_localtime on;
}

后三句为打开当前location段的目录索引功能,显示文件大小,显示文件创建日期,建议只对需要共享的目录打开目录功能。