- 博客(38)
- 收藏
- 关注
原创 docker使用certbot为Nginx申请和续期泛域名SSL证书
本文介绍了使用Certbot工具申请和管理泛域名SSL证书的完整流程。首先通过Docker运行Certbot申请*.cdhr6.com的泛域名证书,完成DNS验证后生成证书文件。然后在Nginx配置中应用证书,实现HTTPS访问。最后设置自动续期方案,通过创建Certbot容器和crontab定时任务,确保证书到期前自动续期并重载Nginx服务。整个过程涵盖了从证书申请、验证到部署和自动维护的关键步骤。
2025-11-27 16:57:03
429
原创 docker使用certbot为Nginx申请和续期单域名SSL证书
本文介绍了使用Docker部署Nginx并配置Let's Encrypt证书的完整流程。主要内容包括:1) 通过Docker运行Nginx容器并挂载证书目录;2) 配置Nginx以支持Certbot验证;3) 使用Certbot申请SSL证书;4) 改造Nginx配置启用HTTPS;5) 设置自动续期任务。重点说明了证书验证机制和自动续期方案,确保网站能长期保持HTTPS访问。整个方案采用容器化部署,便于管理和维护。
2025-11-24 10:37:27
204
原创 在docker中安装frp实现内网穿透
本文介绍了通过Docker部署FRP实现内网穿透的方法。服务端安装frps并配置控制端口和认证密钥后启动容器。客户端安装frpc,配置连接服务端信息及端口映射规则,特别说明了在Mac mini中设置local_ip的两种解决方案:使用局域网地址或host.docker.internal。最后通过服务器IP加远程端口即可访问本地服务。该方法适用于搭建内网穿透服务,方便远程访问本地资源。
2025-07-27 17:15:40
669
原创 docker使用容器网络
通过Docker网络实现容器间通信的解决方案:1)创建专用网络mysql_net;2)运行容器时加入该网络;3)在docker-compose中配置外部网络并使用容器名进行访问。这种方法避免了直接IP连接,MySQL容器与其他服务容器可通过容器名(如mysql:3306)实现安全通信。同时需注意docker-compose中要声明网络为外部创建(external: true)。
2025-06-30 22:17:13
242
原创 debian国内安装docker
本文介绍了在Debian系统上安装Docker的详细步骤。首先更新系统并安装必要依赖包,然后添加阿里云的Docker存储库GPG密钥和apt源。更新apt后即可安装Docker CE及相关组件。最后提供了配置国内Docker Hub镜像的方法,包含多个镜像源地址,以加快国内用户的下载速度。所有操作均通过命令行完成,适用于Debian系统环境。
2025-06-28 21:50:54
437
原创 chrome实现跨域
在Android Studio中使用Flutter开发Web应用时,跨域问题会影响调试。解决方法是在启动配置的additional run args中添加--web-browser-flag="--disable-web-security"参数,允许Chrome跨域访问。这能有效解决页面与接口域名不一致导致的跨域限制,简化开发调试流程。来源:http://blog.cdhr6.com/archives/wei-ming-ming-wen-zhang
2025-06-28 15:52:18
177
原创 gin使用gzip压缩
gzip压缩是每个web应用必不可少的,这项目使用gin作为web框架,gin支持使用中间件,github上有实现好的gzip中间件:gin-contrib/gzip
2017-09-29 09:55:05
6851
原创 gogland跨平台编译
go支持跨平台编译,平时我们在mac或者windows上面开发,部署服务器的时候需要编译成linux的可执行文件,可以使用命令行进行跨平台编译,每次敲命令有点麻烦,gogland简单配置一下也可以实现跨平台编译。
2017-09-28 15:04:13
2576
原创 go编译静态文件
go在编译成二进制文件时并没有把我们的静态资源文件编译进去,如果我们开发的是web应用的话就需要想办法把我们的静态文件也打包进去,这里我们使用 go-bindata它可以把我们的静态文件生成 .go 文件,这样就可以编译成二进制文件,项目启动的时候再把这个 .go 文件再释放成静态文件
2017-09-27 13:02:11
2525
原创 android压缩图片
/*** 压缩图片** @param filePath 图片地址* @return 压缩后的bitmap*/private Bitmap file2Bitmap(String filePath) { BitmapFactory.Options opt = new BitmapFactory.Options(); //true只加载图片的高宽 opt.inJustD
2016-11-26 23:47:34
319
原创 Android获取应用的缓存路径
public static String getDiskCacheDir(Context mContext) { String cachePath; if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { cachePath = mContext.getExternal
2016-11-14 14:54:28
1533
原创 TabLayout禁止选择
项目中有个页面上面是TabLayout下面是Listview,选择TabLayout的选项卡更新下面Listview里面的数据,在请求的时候想禁用TabLayout选项卡来避免用户频繁点击选项卡造成Listview的数据错误。 如果只是调用TabLayout的setClickable方法是不起作用的,需要获取到每个选项卡的tabView然后再分别设置。LinearLayout tab
2016-10-31 15:10:08
9503
原创 解决AppTheme主题打开dialog出现黑条的问题
项目中使用了dialog样式的activity,更换了AppTheme主题后打开activity的时候上面总是有个黑边。 查看AppTheme的样式:<!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="color
2016-10-17 14:14:36
1939
原创 webview通过js调用android方法
android 代码:@EActivity(R.layout.activity_webview)public class WebViewActivity extends Activity { @ViewById WebView wv_content; @AfterViews public void init() { //设置支持javascr
2015-01-16 10:25:11
506
原创 android压缩图片到指定尺寸
public static Bitmap zoomImage(Bitmap bgimage, double newWidth, double newHeight) { // 获取这个图片的宽和高 float width = bgimage.getWidth(); float height = bgimage.getHeight();
2014-10-12 15:12:51
990
使用gzip压缩extjs文件
突然奇想想用extjs4做一个外网项目,但是extjs4依赖的文件实在太大,光ext-all.js已经压缩后的都有1.2m,做外网的话速度非常的慢,为了提高速度可以用gzip对文件再进行压缩,最后可以让1.2m的文件压缩成300多k,这样就大大的节省的时间。 1:先使用gzip压缩文件(http://download.youkuaiyun.com/detail/chen2991...
2013-06-26 21:13:43
233
extjs4 ajax同步加载
平时我们用Ext.Ajax.request来跟后台进行交互,通过ajax使用的是异步的的方式来传递,但是有些情况需要用同步的方式来进行Ext.Ajax.request({ async : false,//添加上这个属性就能实现同步的方式 url: 'page.php', params: { id: 1 ...
2013-06-26 20:52:09
216
extjs4动态加载css文件
extjs4一个比较好的地方就是所有的文件都能动态的生成,比如通过requires可以动态的加载js文件,但是有些加载的控件同样需要加载css文件。extjs4同样也给我们提供了方法:Ext.util.CSS.swapStyleSheet('文件id', 'css文件路径');// 动态加载css文件 ...
2013-06-26 20:50:46
543
extjs4 TreePicker下拉树用法
项目中需要用下拉树来展示数据,到网上搜了下没有想要的东西,有些是自己写的下拉树,官方的api也没有treeCombobx这样的东西,但是在extjs4源码包里面却有一个叫treePicker的东西,这正是官方提供的下拉树,但是api里面也没有使用的例子。网上也没有相关的用法,没办法,只有自己看源码慢慢摸索,好在最后终于摸索出来了。{ xtype : 'treepi...
2013-05-24 21:28:15
469
extjs4 tree的右键菜单
在treePanel或者treeGrid控件上面注册itemcontextmenu事件就是右键菜单'#deptGrid' : { itemcontextmenu : me.deptGrid_itemcontextmenu } deptGrid_itemcontextmenu : function(his, record, item, ind...
2013-05-18 16:44:51
276
extjs4 treeGrid使用
项目有一个需求是展示一个部门信息,但是这个部门下面有可能还存在子部门,用一般的trrPanel感觉效果不是太好,在官方的api上面找到treeGrid控件正好可以满足需求,但是悲催的是把api里面的代码拷到程序里面后没有效果,根据反复的修改终于可以用了:Ext.define('SimpleTasks.view.organize.DeptGrid', { ...
2013-05-18 16:16:52
236
store.setExtraParam的用法
项目中需要在同一个grid中转换成不同的数据,不如有一个menu,里面有“未审核”和“已审核”两个按钮,需要点击按钮后grid中出现对应的信息,之前使用的方法是当点击按钮的时候动态的创建store,然后再调用grid.reconfigure(st);的方法把数据加载到grid里面。 今天突然想起了searchField源码里面的grid.setExtraPara...
2013-04-24 20:59:18
531
extjs4重写验证textfidld不能输入空格
在extjs4中的表单验证里面虽然能够通过allowBlank : false配置控件不能为空,但是如果在控件里面输入空格的话就很轻松的骗过了验证,这显然是不合理的,我想到的解决办法是通过重写TextField控件的验证器再加一个判断空格的验证:Ext.apply(Ext.form.TextField.prototype, { valida...
2013-04-17 21:25:17
570
解决重启tomcat后session依然有效的问题
如果用户页面没有关闭,重新启动tomcat后session依然有效,这样就会造成一个账号就能在两个地方同时登陆,给程序带来隐患。解决办法是在tomcat的context.xml文件里面添加:<Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="fal...
2013-04-17 21:10:36
450
extjs4中htmlEncode与htmlDecode的用法
项目中有一个模块是用来管理前台的评论内容。因为前台的评论没有限制输入的内容所以有可能用户保存的是一段html代码。后台extjs4进行管理的时候如果用grid展示出来会把grid里面的布局弄乱,很不好看,这个时候就想在grid中展示评论内容的时候不要解析这个html代码,当文本一样的输出。在freemarker中只需要在展示的内容两边加上一对标签即可,所以感觉应该不是太难,不知道...
2013-04-16 21:21:31
336
在combobox中输入值自动补齐后名额的值
最近看extjs4的API发现combobox还有一个比较实用的功能,就是在combobox中输入比如"四川",就会自动查询当前下拉框中有的值并补齐成“四川省”,如果下拉框中的值很多的话这个方法还是比较实用。实用的方法也特别的简单,配置两个属性就行了:{ xtype : "combobox", store : sto...
2013-04-14 13:38:44
189
解决get提交乱码和mysql存数据是问号的问题
每次重装系统后重新配置环境后最容易碰到两种乱码的问题,就是get提交乱码和当保存数据到mysql里面时后台代码都没有乱码但是到mysql后中文全是问号。 get提交乱码的解决办法是点击eclipse左边的项目列表中的Servers->Tomcat v7.0 Server at localhost-config->server.xml文件中修改<C...
2013-04-13 11:56:34
210
extjs4自定义vtype验证开始时间不能大于结束时间
项目中需要开始时间和结束时间的验证。因为需求涉及到两个时间,所以要有验证开始时间不能大于结束时间。之前对extjs4了解不够深入,所以这个验证是放在后台来完成,然后在前台弹出一个alert来提示用户“开始时间不能大于结束时间”。这样做依然用户体验不好,不能输入完后马上就提示用户,而且还会发送没必要的请求增加服务器负担。多个字段的验证就能很好的解决这个问题。但是实现也要比单个字段的验证要复杂些,...
2013-04-10 21:46:08
224
extjs4自定义表单验证
extjs4自带的表单验证已经够强大了,但是有些特殊的要求还是无法满足,比如项目中的一个文本控件要求不能输入纯数字,这个需求普通的表单验证就不行了,好在extjs4提供了自定义vtype验证,通过正则表达式来判断,写法也非常的简单: Ext.apply(Ext.form.field.VTypes, { al : function(v) { ...
2013-04-09 22:58:35
191
extjs4实现从页面上方弹下提示框
项目中一边的提示框都是用alert完成,现在项目有一个需求是从页面的最上方降下来一个提示框,用户不需要任何操作,一定时间后自动再收上去。之前用了很多办法,效果都不是很好,结果官方例子里面有现成的解决方法。需要从extjs4的包中找到两个依赖的文件example.css和example.js,把他们放到项目中同一层目录下面,然后在html页面引用这两个文件。然后在项目中就可以使用Ext.exam...
2013-04-09 22:15:17
195
extjs4 me.container.dom is undefined的解决方法
在新创建的一个模块中代码都是从其他模块中拷贝过来的,代码应该没问题,在其他模块中都能运行,但是在新建的模块中window就会出问题,按着下面的操作顺序先打开window,然后关闭,再关闭装有这个模块的tab,然后再打开这个tab,再打开最初的那个window的时候firebug就会出现me.container.dom is undefine的错误,先找了很久都没有找到出问题的原因...
2013-04-08 23:27:44
194
用window实现类似Ext.msg.alert()效果
公司的项目没有使用ifram,所以整个项目就一张页面,导致当使用Ext.msg.alert()后会遮罩整个界面。如果我只想遮罩右边的tab而让左边的tree依然还能用的话就只有重写一个window来代替alert。然后自己再通过mask()方法来手工控制遮罩Ext.create('Ext.window.Window', { title : title, id : id,...
2013-04-08 23:08:37
171
extjs4中tree组件获取选中的节点
一个模块中由两部分组成,左边是一个tree组件,右边是一个grid,点击tree里面的节点时grid中列出相应的数据。其中最主要的就是怎么获得tree中当前选中的节点。 Ext.getCmp('tree的id').getSelectionModel().selected.items; 返回的是一个节点的数组,得到这个数组后我们就可以进行相应的操作了...
2013-04-08 22:04:00
618
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅