自建邮局太麻烦?来用网易免费企业邮!绑定你的域名收发自如!

引言 最早我开始知道域名邮箱是因为偶然在一位我朋友的开发群内看到他的微软账户绑定的邮箱是admin@他网站的域名.com。 我当时就很好奇,就去问他你这个邮箱是自建的吗? 因为我当时也知道可以通过购买VPS然后配上一些开源邮局框架来自建邮箱,但是这需要金钱和时间成本,而且我认为不大稳定,所以一直就没有试过,而且我觉得我当时的muyoung@foxmail.com这个邮箱虽然是托管在QQ的,但是也够用了。 然后他说他用的是Cloudflare的邮件转发服务,我就心想这cf还能干这个,一番操作以下发现还真能。 在cf的域名配置中有一个电子邮件转发,可以将发给你域名的邮件转发到你自己用的邮箱,比如发给demo@muyoung.com的邮件会被cf转发给我的私用邮箱muyoung@foxmail.com。 但是因为是转发,那么如果你想要以demo@muyoung.com这个身份发邮件就需要费一番周折了。我用的foxmail.com被腾讯收购了,现在作为QQ邮箱的服务提供,而QQ邮箱要绑定域名需要购买万恶的VIP,于是就只能通过Outlook、Gmail等支持免费绑定域名作为别名的邮箱来发邮件 但这也太割裂了吧,我在QQ邮箱上收到,然后还要去Outlook或者Gmail上面回复?于是我后面也还是继续使用我的私用邮箱,不去折腾什么域名邮箱了,毕竟方便比什么都重要 但是话又说回来,最近发现了这个网易免费企业邮,可以免费绑定你的域名用作域名邮箱,并且直接将MX解析解析到网易,既能收,也能发。而且这个项目也不是刚出的,貌似在2015就已经有了,所以也不用担心灵车,至少比你自建的稳定😋 正式开始 创建账号并配置管理员 首先前往 网易免费企业邮箱 创建一个账号。直接用手机号注册 注意,注册完毕后登录账户名和登录密码会通过短信发给你,然后前往 https://mail.qiye.163.com/ 进行登录 如果你不喜欢系统随机生成的密码,可以先点击忘记密码,然后填写账户名,验证绑定的手机号后即可重置密码 登陆进去后大概是这样 如果你不喜欢你的账户名,比如我最开始的就是postmaster@muyoung.freeqiye.com,这个postmaster其实是可以更改的 在组织机构管理中点击账号管理,选择新建账号 然后写一个你想要的别名。绑定手机填你的,因为第一次登录需要验证码验证,如果填错了直接删除即可 然后我们需要给这个新账号提权,如果你想用webmaster登录后台的话 接着右上角退出登录,然后使用新创建的管理员账户登录 绑定你的域名 前往组织机构管理 - 域名管理 - 添加域名 根据提示在你的域名提供商(比如Cloudflare)配置TXT记录和MX记录即可 之后可以在之前的账号管理切换成自己的域名后缀 登录你的邮箱# 前往 网易邮箱大师-高效强大的全平台邮箱客户端 下载对应的版本 使用你的邮箱 + 密码进行登录即可。如果需要手机验证验证即可。最好下载一个手机端的网易邮箱大师,在手机端登录后任何其他平台登录都会需要手机端授权,更安全

March 14, 2025 · 1 min

Nginx常用模板

官方模板 user nginx; # Nginx进程运行用户 worker_processes auto; # Nginx工作进程数,通常设置为CPU核数 error_log /var/log/nginx/error.log warn; # 错误日志路径和日志级别 pid /run/nginx.pid; # 进程PID保存路径 # 定义事件模块 events { worker_connections 1024; # 每个工作进程最大并发连接数 use epoll; # 使用epoll网络模型,提高性能 multi_accept on; # 开启支持多个连接同时建立 } # 定义HTTP服务器模块 http { # 缓存文件目录 client_body_temp_path /var/cache/nginx/client_temp; proxy_temp_path /var/cache/nginx/proxy_temp; fastcgi_temp_path /var/cache/nginx/fastcgi_temp; # 定义日志格式,main是默认的日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # 默认访问日志保存路径和格式 access_log /var/log/nginx/access.log main; # 定义MIME类型 include /etc/nginx/mime.types; default_type application/octet-stream; # 代理参数 proxy_connect_timeout 6s; # 连接超时时间 proxy_send_timeout 10s; # 发送超时时间 proxy_read_timeout 10s; # 接收超时时间 proxy_buffer_size 16k; # 缓冲区大小 proxy_buffers 4 32k; # 缓冲区个数和大小 proxy_busy_buffers_size 64k; # 忙碌缓冲区大小 proxy_temp_file_write_size 64k; # 代理临时文件写入大小 # 启用压缩,可以提高网站访问速度 gzip on; gzip_min_length 1k; # 最小压缩文件大小 gzip_types text/plain text/css application/json application/javascript application/xml; # 定义HTTP服务器 server { listen 80; # 监听端口 server_name example.com; # 域名 # 重定向到HTTPS,强制使用HTTPS访问 if ($scheme != "https") { return 301 https://$server_name$request_uri; } # HTTPS服务器配置 ssl_certificate /etc/nginx/ssl/server.crt; # SSL证书路径 ssl_certificate_key /etc/nginx/ssl/server.key; # SSL私钥路径 # SSL会话缓存参数 ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; # 配置代理路径 location / { proxy_pass http://localhost:8080; # 转发请求的目标地址 proxy_set_header Host $host; # 设置请求头中的Host字段 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置HTTP头中的X-Forwarded-For字段,表示客户端真实IP,多个IP用逗号隔开 proxy_set_header X-Real-IP $remote_addr; # 设置请求头中的X-Real-IP字段,表示客户端真实IP } # 配置静态文件访问路径 location /static/ { alias /path/to/static/files/; # 静态文件的目录 expires 7d; # 静态文件缓存时间 add_header Pragma public; # 添加HTTP响应头 add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } # 配置错误页面 error_page 404 /404.html; # 404错误页 location = /404.html { internal; # 不接受外部访问 root /usr/share/nginx/html; # 404错误页文件所在目录 } # 配置重定向 location /old/ { rewrite ^/old/([^/]+) /new/$1 permanent; # 将/old/xxx路径重定向为/new/xxx,返回301状态码 } } # 其他服务配置 # server { # ... # } # 配置TCP负载均衡 upstream backends { server backend1.example.com:8080 weight=5; # 后端服务器地址和权重 server backend2.example.com:8080; server backend3.example.com:8080 backup; # 备用服务器 keepalive 16; # 连接池大小 } server { listen 80; server_name example.com; location / { proxy_pass http://backends; # 负载均衡转发请求的目标地址 proxy_set_header Host $host; # 设置请求头中的Host字段 proxy_set_header X-Real-IP $remote_addr; # 设置请求头中的X-Real-IP字段,表示客户端真实IP } } } # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user root; worker_processes 2; #error_log /var/log/nginx/error.log; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. #include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; rewrite ^(.*)$ https://$host$1 permanent; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } #主页 server { listen 443 ssl; listen [::]:443 default_server; #server_name muyangx.top; root /myservices/web/bangong; ssl_certificate "/myservices/cert/muyangx.topcert.pem"; ssl_certificate_key "/myservices/cert/muyangx.topkey.pem"; index index.html; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers PROFILE=SYSTEM; ssl_prefer_server_ciphers on; location / { } } #docker面板 server { listen 443 ssl; server_name docker.muyangx.top; ssl_certificate "/myservices/cert/*.muyangx.topcert.pem"; ssl_certificate_key "/myservices/cert/*.muyangx.topkey.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers PROFILE=SYSTEM; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:9000; } } #Settings for a TLS enabled server. # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers PROFILE=SYSTEM; # ssl_prefer_server_ciphers on; # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # location / { # } # error_page 404 /404.html; # location = /40x.html { # } # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } } nginx强制https 1、使用nginx的rewrite方法 server { listen 80; server_name xxx.com; rewrite ^(.*)$ https://$host$1 permanent; } 2、使用nginx的301状态码 server { listen 80; listen 443; server_name xxx.com; ssl on; ssl_certificate /data/www-key/xxx.pem; ssl_certificate_key /data/www-key/xxx.key; if ($scheme = http) { return 301 https://$server_name$request_uri; } }

March 14, 2025 · 3 min

在Picgo上配置Cloudflare-R2图床

什么叫图床 图床就是将图片上传到相关服务商或者个人服务器,通过上传文件的网络地址进行远程访问。可以方便快速的将图片插入到文章中,方便后续图片二次使用、迁移、分享。 常用图床的几种方式 VPS自建:通过购买服务器搭建图床程序,比如easyimage,lsky-pro等。 优点:方便,快捷,空间大 缺点:速度取决于vps的线路,迁移服务时大量数据需要迁移。 云端oss储存+cdn 优点:稳定,速度快 缺点:付费(腾讯cos/阿里oss+cdn(cdn需备案))。免费的额度有限(Backblaze B2 + Cloudflare)。 Github + JsDelivr(cdn) 优点:github绝对稳定,jsdelivr充当github的cdn加速 缺点:虽然有加速,速度也算不上快,属中等。 本篇介绍CLoudFlare R2+Picgo 方案 CLoudFlare R2 免费用户有10GB/月的存储额度(30天内每天储存峰值的平均值),对于小网站基本足够,超额的存储是$0.015/GB/月, 标准储存:日常存储容量前10GB/月免费(30天内每天储存峰值的平均值) Daily Class A Transactions Caps:日常B类事务前100万次免费(A类事务包括下载、获取文件) Daily Class B Transactions Caps:日常A类事务前1000万次免费(B类事务包括创建存储桶、列举存储桶、列举文件版本、列举Keys) 实现目的 1.自由在MD,网站中引用图片(picgo上传) 2.防止恶意被刷流量(虽然CloudFlare只收取额外的储存费用,但被刷流量多了容易被封号) 自定义域名代替原域名(出现问题直接断开和原域名之间的跳转) 设定缓存规则(有人盗刷也是刷缓存) 防盗链(只在规定的网站使用) CloudFlare R2 注册账号 注册账号需要绑定一种支付方式(不扣费,只是用来选择支付方式),可以用信用卡,visa,paypal。 注册地址:https://dash.cloudflare.com/sign-up,验证过邮箱后即可使用。 开通 CloudFlare R2 点击右侧的R2对象储存。 在弹出的界面输入付款方式(信用卡,paypal都可以) 对于中小网站来说,一般超不了。 确认后就可以开通R2对象储存了。 创建储存桶及桶设置 自定义图床域名 进入桶设置界面 设定访问桶的域名,有两种方法,一种是有一个私有域名(需托管在Cloudflare上),另一个是用R2.dev子域名 私有域名(二选一) 继续之后,点连接域,会自动生成dns记录。 之后就能浏览器 https://<自定义域名>/<文件名>访问存储桶里的文件了。 PS:如果域名不托管在CloudFlare,可以单独托管二级\三级域名,只需要给二级域名添加一条NS记录指向原托管即可。 ...

March 12, 2025 · 2 min

Hugo博客搭建教程以及配置调优

正式开始 请全程在Windows上操作 我们首先需要安装Scoop,这是一个适用于Windows的包管理器,个人认为非常好用 Scoop默认会安装到C盘,如果你想要换盘请按需更改 $env:SCOOP='D:\Scoop' $env:SCOOP_GLOBAL='D:\ScoopApps' [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User') [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine') 安装Scoop: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression 如果你以管理员的身份会安装失败,请切换为普通用户。若想强制以管理员身份安装Scoop请使用 github原帖 出于安全考虑,默认情况下已禁用管理员控制台下的安装。如果您知道自己在做什么并希望以管理员身份安装Scoop,请下载安装程序并在提升的控制台中手动执行它,使用 -RunAsAdmin 参数。以下是示例: irm get.scoop.sh -outfile 'install.ps1' .\install.ps1 -RunAsAdmin [-OtherParameters ...] # 如果你想要一行解决: iex "& {$(irm get.scoop.sh)} -RunAsAdmin" 安装Hugo框架: scoop install hugo 然后选择一个你喜欢的文件夹创建你的站点。 myblog 即你的站点文件夹名称 hugo new site myblog cd myblog 安装PaperMod主题: git clone https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod 站点根目录会有一个 hugo.toml。我推荐使用YAML。将文件重命名为 hugo.yaml。粘贴并更改以下内容 baseURL: "https://站点url" title: "网站标题" LanguageCode: "zh-CN" theme: "PaperMod" # 启用首页个人简介展示 params: # 是否启用评论。你需要自己配置,或者直接引入Giscus等评论系统 comments: false # 是否显示代码复制按钮 ShowCodeCopyButtons: true # 是否显示面包屑导航 ShowBreadCrumbs: false # 是否显示阅读时间 ShowReadingTime: true # 是否显示分享按钮 ShowShareButtons: true # 分享按钮配置 # ShareButtons: ["linkedin", "twitter"] # 是否禁用主题切换按钮 disableThemeToggle: false assets: favicon: "/你的/网站图标.jpg" # 需要在static文件夹放置对应的图片 iconHeight: 35 # 首页信息配置 homeInfoParams: Title: "首页展示的标题" Content: > 首页展示的文本 # 设置网站头像和首页头像 profileMode: enabled: false # 设为 true 将完全替换 homeInfoParams # 网站头像设置 (显示在导航栏) label: text: "左上角显示的文本" icon: "/你的/左上角显示的图片.jpg" # 这将显示在导航栏标题旁边。需要在static文件夹放置对应的图片 iconHeight: 35 # 社交图标 (显示在简介下方) socialIcons: - name: bilibili url: "" - name: github url: "" - name: telegram url: "" # 可以添加更多社交图标 https://github.com/adityatelange/hugo-PaperMod/wiki/Icons # 顶部导航栏的快捷链接 menu: main: - identifier: categories name: 分类 url: /categories/ weight: 10 - identifier: tags name: 标签 url: /tags/ weight: 20 - identifier: archives name: 归档 url: /archives/ weight: 30 - identifier: search name: 搜索 url: /search/ weight: 40 # 可以添加更多导航链接。weight的值越高排序越靠后 # 如果要启用搜索功能,需要添加这个 outputs: home: - HTML - RSS - JSON # 必须,用于搜索功能 然后我们需要分别配置分类、标签、归档和搜索页 ...

March 11, 2025 · 4 min

收藏几个动态懒加载图片

前言 一直想把网站的懒加载图片换掉,因为主题默认的是个骷髅图片,自己不喜欢。但是我又不知道去哪儿找,网上找的一些不是图片模糊就是样式不喜欢。这里要感谢@困困鱼提供的图片,样式都很不错,专门收藏下来。 加载图片

February 28, 2025 · 1 min

Shell关键字

Shell 脚本中关键字很多,常见的包括: 语句/命令 描述 if 条件语句,用于根据条件执行不同的命令。 else 条件语句的补充,当if语句中的条件不满足时执行。 elif 条件语句的补充,用于添加多个条件判断。 then 条件语句的结束符号,表示条件判断结束。 for 循环语句,用于对一组数据进行迭代操作。 while 循环语句,根据条件执行循环体内的命令。 until 循环语句,根据条件不满足时执行循环体内的命令。 case 条件语句,用于根据不同的值执行不同的命令。 in 用于在case语句中指定多个值。 do 循环语句的开始符号,表示循环体的开始。 done 循环语句的结束符号,表示循环体的结束。 function 定义函数,用于封装一段代码并在脚本中多次调用。 select 菜单语句,用于生成一个菜单供用户选择。 time 用于计算命令执行的时间。 exit 用于退出脚本或函数。 export 用于将环境变量导出到子进程中。 readonly 用于将变量设置为只读,不能被修改。 unset 用于删除变量或函数。 source 用于在当前Shell中执行脚本文件,类似于./命令。 return 用于从函数中返回一个值。 trap 用于捕获信号或错误,并在捕获到时执行相应的命令。 wait 用于等待后台运行的进程结束。 exec 用于替换当前Shell进程为指定的命令。 alias 用于创建命令别名。 set 用于设置Shell选项和环境变量。 unset 用于删除Shell选项和环境变量。 shift 用于在命令行参数中向左移动一个位置。 test 用于条件测试,类似于if语句中的条件判断。

February 27, 2025 · 1 min

vSphere Hypervisor(ESXI)

VMware OVF Tool导出虚拟机 1安装VMware-ovftool-4.3.0-12320924-win.x86_64.msi 2进入安装目录 C:\Program Files\VMware\VMware OVF Tool\ 输入cmd进入命令提示符 ` ovftool vi://root:@192.168.1.10/RockyLinuxServer E:\ovf\RockyLinuxServer.ova ovftool vi://root:@192.168.1.10/WindowsServer2022 E:\ovf\WindowsServer2022.ova ovftool vi://root:@192.168.1.10/DSM920 E:\ovf\DSM920.ova ` ESXI直通板载SATA控制器 1查看”设备ID“和“供应商ID” 2SSH,不细表 3打开直通映射文件: vi /etc/vmware/passthru.map 编辑如下内容: \# Union Point-H AHCI Controller \# <供应商ID> <设备ID> d3d0 default 8086 a282 d3d0 default 重启ESXi 选中 Union Point-H AHCI Controller,点击“切换直通”,大功告成 修改ESXI的证书 连接SSH 进入 /etc/vmware/ssl 目录,找到 rui.key,rui.crt (注意备份原证书)选中删除,将之前修改好的ssl证书复制到该目录 如果不想重启esxi主机,可以在SSH下输入: /etc/init.d/hostd restart /etc/init.d/vpxa restart

February 27, 2025 · 1 min