🗒️简单配置Caddy和Nginx

2023-8-6|2024-6-30
菜鸡的自我修养
菜鸡的自我修养
type
status
date
slug
summary
tags
category
icon
password
caddy优势:配置简单,自动证书,适合个人网站
nginx优势:高性能,高可靠,适合复杂网站
 
选择困难症?
能用就行选caddy;追求上进选nginx
 
本文不可避免的涉及两个概念,简单举例如下:
web服务器:刚安装完Caddy或Nginx时默认给的配置,用于“展示”硬盘里某个文件
反向代理:如alist给的ip:5244,希望将它配置为https+域名来访问
 
 

Caddy配置

懒人一键安装配置脚本:

安装Caddy

配置caddy

  • 输入 nano /etc/caddy/Caddyfile 配置caddy,第一次安装时默认有一个示例配置,不需要的话可以将内容全部删除,然后按需求添加如下配置

web服务器

其中,:20000 为暴露端口,/var/www 为希望展示的文件夹路径
如需php7.4仅需在配置中间添加php_fastcgi unix//run/php/php7.4-fpm.sock

反向代理

其中,www.example.com为希望配置的域名,abcd@gmail.com为自己的邮箱,127.0.0.1:5244为应用给的端口
 
  • 保存后systemctl restart caddysystemctl reload caddy即配置完成

 

如何删除


 

Nginx配置

先解决一些常见困惑,比如应用使用的是非80 443端口,是否需要修改为对应端口?
答:本文中的listen 即监听端口为80[::]:80 ,无论实际使用什么端口都不需要修改,因为在浏览器直接输入域名访问时默认使用80端口并且还需要用于申请证书的HTTP挑战(HTTP Challenge);但配置反向代理时proxy_pass的端口需要改为实际使用端口
 
nginx由各种功能模块构成,在配置前需要理解其中的三个文件/文件夹作用,分别是/etc/nginx目录下的nginx.conf文件,sites-available文件夹,sites-enabled文件夹,简要功能如下:
nginx.conf文件:包含了nginx的全局配置,对所有网站都生效,一般是通用配置内容
sites-available文件夹:存放网站配置,如site1.conf,site2.conf但并不直接影响Nginx
sites-enabled文件夹:通常并不直接编辑配置而是使用ln命令从sites-available文件夹创建链接到这个文件夹,直接影响Nginx
 
一些可能存在的其他情况
在某些nginx版本中可能没有sites-xxx文件夹,那么只需要将所有配置放到conf.d文件夹即可。但个人建议还是手动创建sites-availablesites-enabled两个文件夹并在nginx.conf文件的http块最后一行增加include /etc/nginx/sites-enabled/*; 这样会比较规范
有了这些基本认知就可以开始配置nginx辣

安装nginx

PHP是nginx的好搭档,可以按需求选择是否安装php

配置nginx

编辑一个配置文件,如site1.conf,需放在/etc/nginx/sites-available文件夹下

web服务器

其中,www.example.com 为域名,/var/www 为希望展示的文件夹路径,如需配置ipv6则将listen 80改为listen [::]:80 。 如果需要启用php,可以将index index.html 改为index index.php index.html 并添加一个location块,如使用php7.4

反向代理

其中,www.example.com 为域名,20000为应用端口。如需配置ipv6则将listen 80改为listen [::]:80
 
 
  • 创建软链接
  • 测试配置是否正确
输出如下则配置正确
  • 加载配置重启nginx

证书配置

配置证书通常使用certbot或acme.sh,如果网站托管在CF也可以使用CF的15年自签证书(注意使用CF证书必须开小黄云)
 
因为个人常用certbot,因此本文以certbot为例

安装certbot

申请证书

初次使用出现如下选项
接下来等待配置,成功了会有如下提示
此时nginx配置完成,可以看到配置里自动增加了443端口相关的server块配置
 

申请证书时可能碰到的小问题

开启Cloudflare的小黄云后由于certbot无法正确获取ip导致证书申请失败
解决办法:在/etc/nginx/conf.d 目录下创建一个cf_ips.conf文件,内容如下:
保存后nginx -s reload 重载配置即可正常申请证书
 

定时更新证书

免费证书通常3个月到期,因此需要定期检查证书并续期
仅需一个命令即可定期更新所有证书
 
 
 

如何删除

 
Loading...