diff --git a/404 b/404
new file mode 100644
index 0000000..f2b1b9e
--- /dev/null
+++ b/404
@@ -0,0 +1,541 @@
+#!/bin/bash
+
+# 日系动漫风格404页面一键部署脚本
+# 适用于Nginx反向代理环境
+
+set -e
+
+# 颜色定义
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+BLUE='\033[0;34m'
+NC='\033[0m' # No Color
+
+# 日志函数
+log_info() {
+ echo -e "${BLUE}[INFO]${NC} $1"
+}
+
+log_success() {
+ echo -e "${GREEN}[SUCCESS]${NC} $1"
+}
+
+log_warning() {
+ echo -e "${YELLOW}[WARNING]${NC} $1"
+}
+
+log_error() {
+ echo -e "${RED}[ERROR]${NC} $1"
+}
+
+# 检查root权限
+check_root() {
+ if [[ $EUID -eq 0 ]]; then
+ log_warning "正在使用root权限执行脚本"
+ else
+ log_error "此脚本需要root权限来修改Nginx配置"
+ exit 1
+ fi
+}
+
+# 检查Nginx是否安装
+check_nginx() {
+ if ! command -v nginx &> /dev/null; then
+ log_error "Nginx未安装,请先安装Nginx"
+ exit 1
+ fi
+ log_success "Nginx已安装"
+}
+
+# 创建404页面
+create_404_page() {
+ local html_path="/usr/share/nginx/html/404.html"
+
+ log_info "正在创建日系动漫风格404页面..."
+
+ cat > "$html_path" << 'EOF'
+
+
+
+
+
+ 页面未找到 - 404错误
+
+
+
+
+
+
+
+
+
404
+
おっと!ページが見つかりません
+
申し訳ありませんが、お探しのページは存在しないか、移動した可能性があります。
+ 迷子になったキャラクターのように、ページもどこかへ行ってしまったようです。
+
+
+
+
+
+
+
+EOF
+
+ log_success "404页面已创建: $html_path"
+}
+
+# 配置Nginx
+configure_nginx() {
+ local nginx_conf_dir="/etc/nginx"
+ local sites_available_dir="$nginx_conf_dir/sites-available"
+ local sites_enabled_dir="$nginx_conf_dir/sites-enabled"
+
+ log_info "正在配置Nginx..."
+
+ # 检查配置目录是否存在
+ if [[ ! -d "$sites_available_dir" ]]; then
+ log_error "Nginx配置目录不存在: $sites_available_dir"
+ log_info "请确保Nginx已正确安装"
+ exit 1
+ fi
+
+ # 查找主要的Nginx配置文件
+ local main_config=""
+ if [[ -f "$nginx_conf_dir/nginx.conf" ]]; then
+ main_config="$nginx_conf_dir/nginx.conf"
+ fi
+
+ # 在http块中添加404配置
+ if [[ -n "$main_config" ]]; then
+ # 备份原配置
+ cp "$main_config" "$main_config.backup.$(date +%Y%m%d%H%M%S)"
+ log_info "已备份原配置: $main_config.backup.*"
+
+ # 检查是否已存在404配置
+ if grep -q "error_page 404" "$main_config"; then
+ log_warning "404配置已存在,将更新配置"
+ # 可以在这里添加更新逻辑
+ else
+ # 在http块中添加404配置
+ sed -i '/http {/a\\terror_page 404 /404.html;\n\tlocation = /404.html {\n\t\troot /usr/share/nginx/html;\n\t\tinternal;\n\t}' "$main_config"
+ log_success "已在主配置文件中添加404配置"
+ fi
+ fi
+
+ # 为每个站点配置添加404页面
+ for config_file in "$sites_available_dir"/*; do
+ if [[ -f "$config_file" ]]; then
+ local config_name=$(basename "$config_file")
+ log_info "处理站点配置: $config_name"
+
+ # 备份原配置
+ cp "$config_file" "$config_file.backup.$(date +%Y%m%d%H%M%S)"
+
+ # 检查是否已存在404配置
+ if ! grep -q "error_page 404" "$config_file"; then
+ # 在server块中添加404配置
+ sed -i '/server {/a\\terror_page 404 /404.html;' "$config_file"
+ sed -i '/error_page 404/a\\tlocation = /404.html {\n\t\troot /usr/share/nginx/html;\n\t\tinternal;\n\t}' "$config_file"
+ log_success "已为 $config_name 添加404配置"
+ else
+ log_info "$config_name 已有404配置,跳过"
+ fi
+ fi
+ done
+}
+
+# 测试Nginx配置
+test_nginx() {
+ log_info "测试Nginx配置..."
+ if nginx -t; then
+ log_success "Nginx配置测试通过"
+ return 0
+ else
+ log_error "Nginx配置测试失败"
+ return 1
+ fi
+}
+
+# 重新加载Nginx
+reload_nginx() {
+ log_info "重新加载Nginx配置..."
+ if systemctl reload nginx; then
+ log_success "Nginx已重新加载"
+ return 0
+ else
+ log_error "Nginx重新加载失败"
+ return 1
+ fi
+}
+
+# 显示完成信息
+show_completion() {
+ echo
+ log_success "日系动漫风格404页面部署完成!"
+ echo
+ log_info "部署详情:"
+ log_info "- 404页面位置: /usr/share/nginx/html/404.html"
+ log_info "- Nginx配置已更新"
+ log_info "- 所有站点现在都会显示自定义404页面"
+ echo
+ log_info "您可以通过访问一个不存在的URL来测试404页面"
+ log_info "例如: curl -I http://your-domain/not-exist-page"
+ echo
+}
+
+# 主函数
+main() {
+ echo
+ log_info "开始部署日系动漫风格404页面..."
+ echo
+
+ # 检查环境
+ check_root
+ check_nginx
+
+ # 执行部署步骤
+ create_404_page
+ configure_nginx
+
+ # 测试并重新加载Nginx
+ if test_nginx; then
+ reload_nginx
+ show_completion
+ else
+ log_error "部署失败,请检查Nginx配置"
+ exit 1
+ fi
+}
+
+# 显示使用说明
+usage() {
+ echo "日系动漫风格404页面一键部署脚本"
+ echo
+ echo "使用方法: $0 [选项]"
+ echo
+ echo "选项:"
+ echo " -h, --help 显示此帮助信息"
+ echo " -i, --install 执行安装部署"
+ echo
+ echo "示例:"
+ echo " $0 --install 部署404页面"
+}
+
+# 参数处理
+case "${1:-}" in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -i|--install|"")
+ main
+ ;;
+ *)
+ log_error "未知选项: $1"
+ usage
+ exit 1
+ ;;
+esac