1.  利用 Let's Encrypt 免费证书配置 SSL 服务

利用 certbot 脚本可以很方便地完成免费证书的申请、配置、自动续期等过程。

(安装 certbot 最好的方式是通过 snap,可以很好地处理相关的依赖关系,以及不受宿主操作系统版本的限制去更新 certbot 的版本,以便自动适应 Let's Encrypt 流程要求的变化。)

certbot 能自动进行对 Nginx 配置文件的必要修改,所以可以先不管 SSL,把 Nginx 的 http 服务调通,然后执行 certbot 脚本,自动完成证书的申请和 Nginx 配置的修改工作。

比如在 Nginx 里配置 Gitea 服务的时候,就可以先用 proxy_pass 把 Gitea 连通,然后再增加 SSL 支持。

比如执行指令

 certbot --nginx -d git.boyai.cn
根据提示进行操作就行了。其中 -d 参数指定的是证书中所需要包含的域名,域名虽然不支持通配符,但单个证书中是允许包含多个域名的。

如果已经提前通过 certbot 创建好证书了(例如先把证书在 Lighttpd 配置完成了),只是需要让 Nginx 启用这个证书,那么可以执行类似如下指令:

 certbot run -a webroot -i nginx -w /var/www/elias.cn/ -d www.elias.cn
表示想要把已经申请的证书部署到 Nginx,并需要声明网址根目录所对应的服务器物理路径,以便在证书自动续期的时候能满足 Let's Encrypt 的验证要求。

对于申请成功的证书,cerbot 会自动维护定期续期的后台任务。

2.  作为反向代理发布内网服务

在 Nginx 外层启用了 HTTPS 协议的情况下,有时候内网服务会仍然以为自己在 HTTP 下,导致静态资源依赖无法正常工作(比如内网是 lighttpd + FastCGI PHP,页面生成的 css 地址会是 HTTP 的,浏览器出于安全原因就不会加载这些 css)。一种绕过这个问题的办法是——让内网服务也工作在 HTTPS 下,Nginx 的 proxy_pass 是允许源头服务也使用 HTTPS 的。

3.  解决大附件上传限制

Nginx 默认设置的 post size 大小限制是 1M,在配合 Gitea 等应用使用时会有很多不方便的地方。

解除这个限制的办法是修改 /etc/nginx.conf ,在 http 章节下增加如下配置项:

http {
    . . .
    client_max_body_size 64M;
    . . .
}

然后重启 Nginx,使配置项生效就行了。

GlossyBlue theme adapted by David Gilbert
Powered by PmWiki