首页
关于
友链
Search
1
ESXI 一些功能调整
560 阅读
2
天翼云网关3.0/4.0超管密码
514 阅读
3
SoftEther 客户端篇
483 阅读
4
SoftEther 服务端篇
388 阅读
5
Centos安装个人网盘Alist v3教程
347 阅读
默认分类
代码相关
vue
html
python
系统
数据库
docker
安卓
软件分享
杂七杂八的工具
游戏分享
游戏相关
我的家庭影院
Ai
登录
Search
标签搜索
python
esxi
git
SoftEther
linux
apscheduler
在线
rclone
飞牛
list
列表
idm
激活码
Charles
pdf
免安装
鲁大师
图片查看器
蜂蜜浏览器
honeyview
哥特式
累计撰写
106
篇文章
累计收到
15
条评论
首页
栏目
默认分类
代码相关
vue
html
python
系统
数据库
docker
安卓
软件分享
杂七杂八的工具
游戏分享
游戏相关
我的家庭影院
Ai
页面
关于
友链
搜索到
89
篇与
的结果
2024-05-07
supervisor的安装和使用
安装pip install supervisor自定义服务配置文件echo_supervisord_conf > /etc/supervisord.conf配置文件的大概内容[unix_http_server] file=/tmp/supervisor.sock ; the path to the socket file ;chmod=0700 ; socket file mode (default 0700) ;chown=nobody:nogroup ; socket file uid:gid owner ;username=user ; default is no username (open server) ;password=123 ; default is no password (open server) [supervisord] logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=info ; log level; default info; others: debug,warn,trace pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket ;username=chris ; should be same as in [*_http_server] if set ;password=123 ; should be same as in [*_http_server] if set ;prompt=mysupervisor ; cmd line prompt (default "supervisor") ;history_file=~/.sc_history ; use readline history if available ;[program:theprogramname] ;command=/bin/cat ; the program (relative uses PATH, can take args) ;[group:thegroupname] ;programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions ;priority=999 ; the relative start priority (default 999) ;[include] ;files = relative/directory/*.ini对于上述配置参数,可以按照具体的需求进行自定义,大多数参数可以保持默认设置。但是为了方便多个项目的统一管理,需要启用 [include] 参数。该参数用于将指定文件包含到配置中,通过这种方式来 "扩展" 服务配置文件。创建配置目录,并修改 files 参数 :mkdir /etc/supervisord.d[include] files = /etc/supervisord.d/*.ini自定义应用配置文件假设现在有一个测试项目 (test),里面有个 test.py 脚本需要持久化运行。现在切换到项目目录 (/root/test),并按照以下格式创建应用配置文件。{porject_name}.ini配置项目的进程启动参数 :; /root/test/test.ini [program:test] command=python -u ./test.py ; 运行命令 directory=/root/test/ ; 运行目录 redirect_stderr=true ; 将 stderr 重定向到 stdout stdout_logfile=/root/test/test.log ; 日志文件输出路径 autorestart=true ; 用于控制是否在 supervisord 进程启动时同时启动 (默认为 true) startsecs=3 ; 是与自动重启相关的另一个配置参数。其作用是用于判断进程是否启动成功,只有当目标进程运行时间大于该配置时,才会判断成成功。 startretries=3 ; 参数需要与 startsecs 参数配合使用,用于控制目标进程的重启尝试次数,并且每次重试花费的时间间隔越来越长。可以通过以下代码测试一下: stdout_logfile=/supervisor/log/win_server.out.log ; 指定标准输出流的日志文件路径。 stderr_logfile=/supervisor/log/win_server.err.log ; 错误日志文件输出路径 stdout_logfile_maxbytes=2MB ; 单个日志文件的最大字节数,当超过该值时将对日志进行切分。 stderr_logfile_maxbytes=2MB ; 错误日志文件最大2MB user=root ; 使用什么用户运行 priority=999 ; 优先级,数值越小越先启动 numprocs=1 ; 用于指定运行时的进程实例数量,需要与 process_name 参数配合使用。 process_name=%(program_name)s_%(process_num)02d使用# 宝塔面板中: # 使用软链接链接到user/bin下面,这样可以在命令行直接使用 ln -s /www/server/panel/pyenv/bin/supervisorctl /usr/bin/supervisorctl # 进入到管理界面 supervisorctl # 查看所有子进程状态 status # 查看单个子进程的状态 status 子进程 # 关闭单个子进程 stop 子进程 # 关闭所有子进程 stop all # 启动单个子进程 start 子进程 # 启动所有子进程 start all # 重启单个子进程 restart 子进程
2024年05月07日
39 阅读
0 评论
0 点赞
2024-04-30
如何在 Debian 10 中配置 Chroot 环境的 SFTP 服务
如何在 Debian 10 中配置 Chroot 环境的 SFTP 服务SFTP 意思是“ 安全文件传输协议(Secure File Transfer Protocol)” 或 “ SSH 文件传输协议(SSH File Transfer Protocol)”,它是最常用的用于通过 ssh 将文件从本地系统安全地传输到远程服务器的方法,反之亦然。sftp 的主要优点是,除 openssh-server 之外,我们不需要安装任何额外的软件包,在大多数的 Linux 发行版中,openssh-server 软件包是默认安装的一部分。sftp 的另外一个好处是,我们可以允许用户使用 sftp ,而不允许使用 ssh 。当前发布的 Debian 10 代号为 ‘Buster’,在这篇文章中,我们将演示如何在 Debian 10 系统中在 “监狱式的” Chroot 环境中配置 sftp。在这里,Chroot 监狱式环境意味着,用户不能超出各自的家目录,或者用户不能从各自的家目录更改目录。下面实验的详细情况:OS = Debian 10IP 地址 = 192.168.56.151让我们跳转到 SFTP 配置步骤,步骤 1、使用 groupadd 命令给 sftp 创建一个组打开终端,使用下面的 groupadd 命令创建一个名为的 sftp_users 组:groupadd sftp_users步骤 2、添加用户到组 sftp_users 并设置权限假设你想创建新的用户,并且想添加该用户到 sftp_users 组中,那么运行下面的命令,useradd -m -G sftp_users <用户名> 让我们假设用户名是 jonathan:useradd -m -G sftp_users jonathan 使用下面的 chpasswd 命令设置密码:echo "jonathan:<输入密码>" | chpasswd 假设你想添加现有的用户到 sftp_users 组中,那么运行下面的 usermod 命令,让我们假设已经存在的用户名称是 chris:usermod -G sftp_users chris 现在设置用户所需的权限:chown root /home/jonathan /home/chris/ 在各用户的家目录中都创建一个上传目录,并设置正确地所有权:mkdir /home/jonathan/upload mkdir /home/chris/upload chown jonathan /home/jonathan/upload chown chris /home/chris/upload 注意: 像 Jonathan 和 Chris 之类的用户可以从他们的本地系统上传文件和目录。步骤 3、编辑 sftp 配置文件 /etc/ssh/sshd_config正如我们已经陈述的,sftp 操作是通过 ssh 完成的,所以它的配置文件是 /etc/ssh/sshd_config,在做任何更改前,我建议首先备份文件,然后再编辑该文件,接下来添加下面的内容:cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org vim /etc/ssh/sshd_config ...... #Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftp_users ChrootDirectory /home/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no ...... 保存并退出文件。为使上述更改生效,使用下面的 systemctl 命令来重新启动 ssh 服务:systemctl restart sshd 在上面的 sshd_config 文件中,我们已经注释掉了以 Subsystem 开头的行,并添加了新的条目 Subsystem sftp internal-sftp 和新的行。而Match Group sftp_users –> 它意味着如果用户是 sftp_users 组中的一员,那么将应用下面提到的规则到这个条目。ChrootDierctory %h –> 它意味着用户只能在他们自己各自的家目录中更改目录,而不能超出他们各自的家目录。或者换句话说,我们可以说用户是不允许更改目录的。他们将在他们的目录中获得监狱一样的环境,并且不能访问其他用户的目录和系统的目录。ForceCommand internal-sftp –> 它意味着用户仅被限制到只能使用 sftp 命令。步骤4、测试和验证sftpsftp -P ssh端口 username@ip
2024年04月30日
27 阅读
0 评论
0 点赞
2024-04-11
js将页面弄成pdf
// 使用html2pdf这个js,js公共cdn,https://staticfile.org/https://cdn.staticfile.net/html2pdf.js/0.10.1/html2pdf.bundle.js<script src="https://cdn.staticfile.net/html2pdf.js/0.10.1/html2pdf.bundle.js"></script> let url = "https://0.0.0.0" fetch(url) .then(response => response.text()) .then(data => { var element = document.createElement('div'); element.innerHTML = data; html2pdf(element, { margin: [1, 1, 1, 1], filename: sup.name + "-签署的协议.pdf", pagebreak: {mode: "avoid-all"}, jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' } }); console.log('PDF generated successfully'); }) .catch(error => { console.error('Error:', error); });
2024年04月11日
59 阅读
0 评论
0 点赞
2024-03-29
Esxi安装补丁
这里以8.0为例1. 下载补丁https://customerconnect.vmware.com/zh/patch2. 上传补丁到你的目录3.vmware -lv //查看版本 esxcli software sources profile list -d /vmfs/volumes/your path/esxi8.0/VMware-ESXi-8.0a-20842819-depot.zip esxcli software profile update -d /vmfs/volumes/your path/esxi8.0/VMware-ESXi-8.0a-20842819-depot.zip -p ESXi-8.0a-20842819-standard //-p 后面的版本就是上面那条命令显示的 如果有就可以升级没有就GG4. 报错集合# esxcli software vib install -d /vmfs/volumes/images/VMware/vSphere8/VMware-ESXi-8.0U1c-22088125-depot.zip [DependencyError] On platform embeddedEsx, VIB VMW_bootbank_vmkusb-nic-fling_1.11-1vmw.800.1.20.61054763 requires vmkapi_incompat_2_10_0_0, but the requirement cannot be satisfied within the ImageProfile. Please refer to the log file for more details.暂时删除 Fling 以升级 ESXiesxcli software vib remove -n vmkusb-nic-fling
2024年03月29日
143 阅读
0 评论
0 点赞
2024-03-28
linux生成密钥
一、首先需要在自己的本地生成ssh-key密钥1.1生成通过命令生成秘钥,创建文件具体参数看附录win+r(windows下)输入cmd,调出终端。执行命令:ssh-keygen -t ed25519 -C "我自己的密钥" -b 4096 -f H:\密钥文件\总的.pemGenerating public/private rsa key pair. //======> 存储路径 直接回车 使用默认路径,-f设置过就不会有这步 Enter file in which to save the key (/Users/bigmaning/.ssh/id_rsa): //======> 设置密码 直接回车 默认不设置密码 Enter passphrase (empty for no passphrase): //======> 确认密码 操作同上(直接回车 默认不设置密码) Enter same passphrase again: //======> 生成的密钥对的位置 Your identification has been saved in /Users/bigmaning/.ssh/id_rsa. Your public key has been saved in /Users/bigmaning/.ssh/id_rsa.pub.1.2命令之后,查看在本地生成的文件二、将用户下的.ssh目录中的总的.pem.pub公钥文件上传到服务器,或者也可打开此文件,直接复制内容到服务器上。2.1服务器中执行命令创建秘钥:执行命令如下:ssh-keygen -t ed25519 -C "我自己的密钥" -b 4096 -f /root/.ssh/总的.pem #/root/.ssh/总的.pem 表示存放生成文件的存放路径,可自定义路径 #/总的.pem 文件名称可以自定义 但必须以 .pem 结尾2.2 上传本地1.2生成的密钥文件到/root/.ssh里面2.3需将当前上传公钥中的值加入到授权列表(authorized_keys)中2.3.1如果没有authorized_keys这个文件就创建,命令:touch authorized_keys2.3.2 将总的.pem.pub文件中的内容添加到 新创建的 authorized_keys 文件中cat 总的.pem.pub>>authorized_keys 2.3.3 查看是否添加成功cat authorized_keysauthorized_keys 中保存的可以有N个,数据来源于不同用户在本地生成的xxx.pem.pub 中的key,同时,也可以将服务器中的生成的xxx.pem.pub的key放到另外一个服务器中的authorized_keys中 这样就可以实现linux服务互相连接了附录:ssh-keygen命令参数ssh-keygen [选项]-b:指定密钥长度;-e:读取openssh的私钥或者公钥文件;-C:添加注释; (一般设置为自己的邮箱)-f:指定用来保存密钥的文件名;-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;-l:显示公钥文件的指纹数据;-N:提供一个新密语;-P:提供(旧)密语;-q:静默模式;-t:指定要创建的密钥类型。 (常用参数)
2024年03月28日
79 阅读
0 评论
0 点赞
2024-03-19
青龙面板傻妞(sillyGirl)+go-cqhttp
1. 安装傻妞services: sillyplus: stdin_open: true tty: true volumes: # - ./data:/etc/sillyGirl - ./data1:/etc/sillyplus ports: - 你的端口:8080 container_name: sillyGirl restart: always image: jackytj/sillyplus # image: ingm23/sillygirl:1.1 # image: jessicayun/sillygirl:v1 2. 傻妞交互命令界面官方文档docker attach sillyGirl3. cq-http的安装和配置安装很简单,下载运行就行了,配置的话主要是反向ws方面傻妞要进到管理面板,安装插件OnebotV11(原内置QQ)# go-cqhttp 默认配置文件 account: # 账号相关 uin: 123456 # QQ账号 password: '' # 密码为空时使用扫码登录 encrypt: false # 是否开启密码加密 status: 0 # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态 relogin: # 重连设置 delay: 3 # 首次重连延迟, 单位秒 interval: 3 # 重连间隔 max-times: 0 # 最大重连次数, 0为无限制 # 连接服务列表 servers: # 添加方式,同一连接方式可添加多个,具体配置说明请查看文档 #- http: # http 通信 #- ws: # 正向 Websocket #- ws-reverse: # 反向 Websocket #- pprof: #性能分析服务器 - http: # HTTP 通信设置 address: 0.0.0.0:端口号 # HTTP监听地址 timeout: 5 # 反向 HTTP 超时时间, 单位秒,<5 时将被忽略 long-polling: # 长轮询拓展 enabled: false # 是否开启 max-queue-size: 2000 # 消息队列大小,0 表示不限制队列大小,谨慎使用 middlewares: <<: *default # 引用默认中间件 post: # 反向HTTP POST地址列表 #- url: '' # 地址 # secret: '' # 密钥 # max-retries: 3 # 最大重试,0 时禁用 # retries-interval: 1500 # 重试时间,单位毫秒,0 时立即 #- url: http://127.0.0.1:5701/ # 地址 # secret: '' # 密钥 # max-retries: 10 # 最大重试,0 时禁用 # retries-interval: 1000 # 重试时间,单位毫秒,0 时立即 # 反向WS设置 - ws-reverse: # 反向WS Universal 地址 # 注意 设置了此项地址后下面两项将会被忽略 universal: ws://127.0.0.1:傻妞的端口号/bot/onebotv11 # 反向WS API 地址 api: ws://your_websocket_api.server # 反向WS Event 地址 event: ws://your_websocket_event.server # 重连间隔 单位毫秒 reconnect-interval: 3000 middlewares: <<: *default # 引用默认中间件
2024年03月19日
120 阅读
0 评论
0 点赞
2024-03-13
pip使用教程
1. pip升级库# 查看当前电脑中所有可以升级的Python包 pip list --outdated # 安装pip-review包 pip install pip-review # 使用pip-review命令一次性更新所有过时的包 pip-review --local --interactive # 升级单个包 pip install --upgrade ** pip install --upgrade **
2024年03月13日
62 阅读
0 评论
0 点赞
2024-03-12
docker Jenkins使用
1. 安装version: '3.1' services: jenkins: restart: always image: jenkins/jenkins container_name: jenkins # network_mode: 'host' #与宿主机共享网络 mem_limit: 2g ports: # 发布端口 - 30011:8080 # 基于 JNLP 的 Jenkins 代理通过 TCP 端口 50000 与 Jenkins master 进行通信 - 50001:50000 environment: TZ: Asia/Shanghai # JENKINS_OPTS: "--httpPort=30011" volumes: - ./data:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /etc/docker/daemon.conf:/etc/docker/daemon.conf - /usr/bin/docker:/usr/bin/docker - ./env:/opt/env2. 报错信息jenkins unix:///var/run/docker.sock, cause: java.io.IOException: com.sun.jna解决方案:sudo chmod a+rw /var/run/docker.sock3. 邮箱配置需要管理员邮箱和你设置发送的邮箱一致
2024年03月12日
21 阅读
0 评论
0 点赞
2024-03-05
Ubuntu系统
1. 开启ipv6编辑ufw文件vi /etc/default/ufw如果IPV6为yes则为开启2. 设置网络信息编辑/etc/netplan/00-installer-config.yaml这个文件network: ethernets: ens160: #dhcp4: true addresses: - 192.168.*/24 nameservers: addresses: - 192.168.* - 192.168.* search: [] routes: - to: default via: 192.168.* version: 2 #renderer: networkd# 应用更改 netplan apply # 查看网关是否修改,第一行default via .... ip route show3. 设置时区dpkg-reconfigure tzdata4. 安装的时候网络选择
2024年03月05日
69 阅读
0 评论
0 点赞
2024-01-30
兰空图床本地上传文件,配合Typora使用
# -*- coding: utf-8 -*- # @Time : 2022-05-18 13:53 # @Author : GeTeShi # @File : test6.py import datetime import time import requests import redis import json import re import os import sys rdb = redis.StrictRedis(host='localhost', port=6379, decode_responses=True) NAME = "test" forever = 60 * 60 * 24 * 30 * 12 * 100 def get_cache(key, name=None): global NAME if name: NAME = name if rdb.hlen(name) and rdb.hexists(name, key): res = rdb.hget(NAME, key) try: res = json.loads(res) except json.decoder.JSONDecodeError: pass return res else: return False def get_cache_all_key(name): global NAME if name: NAME = name if rdb.hlen(name): return rdb.hkeys(name=name) def set_cache(key, content, timeout=60, name=None): global NAME if name: NAME = name if isinstance(content, dict): content = json.dumps(content) rdb.hset(NAME, key, content) rdb.expire(key, timeout) def del_cache(key, name=None): global NAME if name: NAME = name if rdb.hexists(name=name, key=key): rdb.hdel(name, key) def md5(s): import hashlib m2 = hashlib.md5() m2.update(s.encode("utf-8")) return m2.hexdigest() class image_upload(object): def __init__(self, email, password): self.URL = "https://你的图床的api" self.header = { "Accept": "application/json", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54 ", } self.email = email self.password = password self.TOKEN_KEY = f"{self.email}_{md5(self.password)}_{datetime.datetime.strftime(datetime.datetime.now(), '%Y%m')}" self.sess = requests.Session() self.sess.get(url="https://你的图床的api") def get_requests(self, url, method, data=None, file=None): if not self.header.get('Authorization') and "tokens" not in url: header = self.header self.login() self.header.update(header) if method == "post": response = self.sess.post(url=url, data=data if data else "", headers=self.header) elif method == "get": response = self.sess.get(url=url, params=data if data else "", headers=self.header) elif method == "upload": response = self.sess.post(url=url, files=file, headers=self.header, data=data) else: response = self.sess.delete(url=url, headers=self.header) if response.status_code == 200: response.encoding = "utf-8" response = response.json() return response def get_token(self): self.header = {"Accept": "application/json"} token = self.get_requests(url=self.URL + "/tokens", method="post", data={ "email": self.email, "password": self.password }) if token: set_cache(self.TOKEN_KEY, token, timeout=60 * 60 * 24, name="upload-image") return token def upload(self, file): self.header.update({ "Accept": "multipart/form-data" }) filename = file.rsplit("\\", 1)[1].split(".")[0] filetype = file.rsplit("\\", 1)[1].split(".")[1] files = { "file": (f"{filename}.{filetype}", open(file, 'rb'), f"image/{filetype}"), } # 存储策略id,默认1 data = { "strategy_id": 1, } url = self.URL + "/upload" res = self.get_requests(url=url, method="upload", data=data, file=files) if res and res.get("status"): data = res.get('data') print(data.get('links').get('url')) return data.get('links').get('thumbnail_url') else: raise Exception(f"图片上传失败,失败原因:{res.get('message')}") def login(self): token = get_cache(self.TOKEN_KEY, name="upload-image") if (not token) or (not token.get('data') or not token.get('data').get('token')): token = self.get_token() # token = get_cache(self.TOKEN_KEY, name="upload-image") url = self.URL + "/profile" # print(token.get('data')) self.header.update({ "Authorization": "Bearer " + token.get('data').get('token'), "Accept": "application/json" }) self.get_requests(url=url, data="", method="get") def main(self): pass def clear(self): self.get_requests(url=self.URL + "/tokens", data="", method="delete") self.header = {} return "已清空tokens" def get_strategies(self): """获取存储策略""" res = self.get_requests(url=self.URL + "/strategies", method="get") print(res) if __name__ == '__main__': images = sys.argv[1:] for image in images: image_upload(email="你的用户名", password="你的密码").upload(file=image)
2024年01月30日
37 阅读
0 评论
0 点赞
2024-01-29
requestium库的使用
这个Python库把requests按在地上摩擦!在 Python 编程中,处理网络请求是一个常见的任务,特别是做爬虫采集数据。最受欢迎的是 Requests 和 Selenium。而Requestium 结合了这两个库优点的工具,它可以让你在一个统一的接口中使用 Requests 的简便性和 Selenium 的强大功能。1. 安装 Requestium在开始使用 Requestium 之前,你需要先将其安装到你的环境中。安装非常简单,可以通过 pip 命令完成:pip install requestium2. Requestium 的核心功能结合 Requests 和 Selenium: Requestium 将 Requests 库的简易性和 Selenium 库的交互功能结合在了一起。无缝切换: 它允许用户在需要时从 Requests 无缝切换到 Selenium,反之亦然。增强的 XPath 支持: Requestium 提供了对 XPath 的额外支持,使得在使用 Selenium 时可以更方便地定位元素。3. 使用 Requestium 发送请求Requestium 的使用方法与 Requests 类似。以下是一个基本示例,展示如何发送 GET 请求:# 创建一个 Session对象 from requestium import Session # 使用 Requestium 发送 GET 请求 s = Session(webdriver_path='chromedriver', browser='chrome', default_timeout=15) response = s.get('https://www.example.com') print(response.text)4. 结合 Selenium 和 RequestsRequestium 的真正强大之处在于它能够让你在需要时切换到 Selenium。以下是一个示例,展示如何在发送请求后使用 Selenium 处理 JavaScript:from requestium import Session s = Session(webdriver_path='chromedriver', browser='chrome', default_timeout=15) # 发送请求 s.get('https://www.example.com') # 使用 Selenium 处理页面 s.driver.get('https://www.example.com') # 使用 Selenium 定位元素 element = s.driver.find_element_by_xpath('//div[@class="example"]') print(element.text)5. 实战案例假设我们要抓取一个动态加载内容的网页。首先,我们使用 Requestium 发送请求,然后通过 Selenium 处理 JavaScript,最后提取所需数据。from requestium import Session s = Session(webdriver_path='chromedriver', browser='chrome', default_timeout=15) # 访问网页 s.get('https://www.dynamic-content-website.com') # 使用 Selenium 处理动态内容 s.driver.get('https://www.dynamic-content-website.com') # 提取数据 data = s.driver.find_element_by_xpath('//div[@id="dynamic-content"]').text print(data)
2024年01月29日
52 阅读
0 评论
0 点赞
2024-01-29
Nginx配置
自定义返回的东西要在 Nginx 中实现自定义 favicon.ico 返回特定的文件,你可以使用如下的配置:server { listen 80; server_name your_domain.com; location = /favicon.ico { alias /www/favicon.ico; } # 其他服务器配置... }在上面的配置中,当访问 /favicon.ico 路径时,会直接返回 /www/favicon.ico 文件。使用 alias 指令可以让 Nginx 从指定的路径返回文件,而不会将 /favicon.ico 重定向到其他路径。配置完成后,重启 Nginx 以使配置生效。请确保 Nginx 对 /www 目录有读取权限,以便正确返回 favicon.ico 文件。记录日志的格式nginx设置里面,server上面,增加这个log_format http_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $host';网站配置里面access_log /www/wwwlogs/域名信息.log http_format;
2024年01月29日
87 阅读
0 评论
0 点赞
2024-01-25
Windows激活
windows激活,office激活终端执行这个irm https://massgrave.dev/get | iex
2024年01月25日
26 阅读
0 评论
0 点赞
2024-01-22
宝塔面板
使用宝塔的SSL续费编辑站点,加上 # 这是原本的 location ~ /purge(/.*) { proxy_cache_purge cache_one $host$1$is_args$args; } #一键申请SSL证书验证目录相关设置,需要增加的 location ~ \.well-known{ root /www/wwwroot/你的站点目录; }
2024年01月22日
21 阅读
0 评论
0 点赞
2024-01-20
Lsky Pro图床
http换乘https的问题https://github.com/lsky-org/lsky-pro/issues/317docker-compose.yml文件内容version: '3' services: lsky-pro: container_name: lsky-pro image: dko0/lsky-pro restart: always volumes: - ./lsky-pro-data:/var/www/html #映射到本地 ports: - 8083:80 environment: - MYSQL_HOST=192.168.2.200 - MYSQL_DATABASE=lskypro - MYSQL_USER=lskypro - MYSQL_PASSWORD=lskypro # networks: # images_default: # ipv4_address: 172.18.0.2 # mysql: # image: mysql:8.0 # container_name: lsky-pro-db # restart: always # environment: # - MYSQL_DATABASE=lsky-pro # - MYSQL_USER=lsky-pro # - MYSQL_PASSWORD=lsky-pro # - MYSQL_ROOT_PASSWORD=lsky-pro # volumes: # - ./db:/var/lib/mysql # networks: # images_default: # ipv4_address: 172.18.0.3 networks: images_default: ipam: config: - subnet: 172.18.0.0/16 gateway: 172.18.0.1
2024年01月20日
48 阅读
0 评论
0 点赞
1
2
3
4
...
6