Nginx

A collection of 3 posts

Docker

Nginx + Proxy + LetsEncrypt on Docker

本来,我要解决的问题是 Docker 容器中的 WordPress 在通过主机 Nginx 反向代理后启用 HTTPS 时,前台显示正常,但管理后台无法访问的问题。这个问题实际上与我接下来要记录的内容没有本质上的关联,只需要一个名为 SSL Insecure Content Fixer 的 WordPress 插件即可解决。 接下来要记录的内容是完全通过 Docker 容器实现 Nginx 对容器的反向代理,同时实现 Let's Encrypt 证书的自动获取。 前者需要通过 jwilder/nginx-proxy 镜像实现,后者需要结合 JrCs/docker-letsencrypt-nginx-proxy-companion 镜像来实现。这里以我的 WordPress 容器配置举例。 第一步 配置 nginx-proxy

Nextcloud

NextCloud Nginx 反向代理

我的 Nextcloud 服务器位于没有公网 IP 的家庭宽带环境中,属于 NAT 后面的设备。 Nextcloud 服务器配置了 Tinc Client 端,P2P 对端联网即可 Ping 通。 现通过一台 Vultr 的云服务器设置 Nginx 反向代理 Nextcloud 服务器的 Tinc IP。 浏览器可以正常打开 Nextcloud,手机 iOS 客户端连接服务器提示 CSRF Check Failed。 原因可能是反向代理导致了跨域的问题,CSRF TOKEN 在域名变换后发生了变化,因此无法验证通过。解决此问题要从两个方面着手: Nginx 配置文件 server { listen

Nginx

Nginx 启用 HSTS

HSTS 可以由浏览器处理 http 到 https 的转发,省去了服务器设置 302 跳转占用的资源。 在 https 配置文件的 server 中添加 add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; 设置后使用 https 访问一次站点,在接下来的 63072000 毫秒内,无需强制输入 https 浏览器也会自动将网址指向 https 协议。 但如果设置后使用 http 协议首次访问站点,那么浏览器将不会自动处理跳转。这就需要手动对 http 配置文件做一个 301 跳转 return

You've successfully subscribed to Herald's Tech Notes!