Submitted by gouki on 2019, January 21, 10:14 PM
如题的组合。由于本地写代码,比较不方便搞成SSL,毕竟自签名证书现在大部分浏览器都不认了。而且现在微信开发(小程序)、APP等都只认SSL。所以才有了利用frp来进行SSL穿透。
步骤我说的简单一点。不详细 说了
如果不需要内网穿透,其实就是 nginx + acme.sh 就Over了,只是nginx需要配置一下(记得泛域名使用的是fullchain.cer,普通 的单域名是用的xxx.domain.cer)
如果需要内网穿透,步骤简要如下
1、frps -> 设置vhost_http_port(本次假定为8888) ,然后利用supervisor 管理frp (可以使得frp异常崩溃后能够重启)【或者使用systemd,各人喜欢】
2、设置nginx,server_name 为 *.app.neatstudio.com (以app.neatstudio.com为例),在proxy_pass中选择使用upstream,设置为刚才的vhost_http_port,例:
XML/HTML代码
- upstream app.neatstudio.com {
- server 127.0.0.1:8888;
- }
-
- server {
- listen 80;
- server_name *.app.neatstudio.com;
-
- listen 443 ssl;
- ssl on;
- ssl_certificate /etc/nginx/ssl/*.app.neatstudio.com.fullchain.cer;
- ssl_certificate_key /etc/nginx/ssl/*.app.neatstudio.com.key;
-
- ssl_session_cache shared:SSL:20m;
- ssl_session_timeout 10m;
-
- ssl_prefer_server_ciphers on;
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
-
- # turn on the OCSP Stapling and verify
- ssl_stapling on;
- ssl_stapling_verify on;
- ssl_trusted_certificate /etc/nginx/ssl/*.app.neatstudio.com.fullchain.cer;
-
-
-
- add_header Strict-Transport-Security "max-age=31536000";
-
- location / {
- proxy_pass http://app.neatstudio.com;
- include /etc/nginx/proxy_params;
- }
- }
3、在本地(或者任意一台想有https的服务器上)安装frpc,设置subdomain就行了,例:
XML/HTML代码
- [test.app.ns.com]
- type=http
- port=80
- subdomain=test
这样就OK了。[]里的test.app.ns.com,为什么取这个名字?是因为。。。frp的客户端中的任意[]包含的TAG,都不能重名(切记)
然后一切Over(因为我使用mac+mamp,所以会更方便的管理域名)
Tags: frp, acme.sh, nginx, mamp
Linux | 评论:1
| 阅读:12379
Submitted by gouki on 2019, January 8, 10:54 AM
因为当时买腾讯云偷了个懒,想着低配也得有性能。所以就买了本地磁盘,结果,本地磁盘不能升配。所以就关机做镜像,然而。。。镜像要时间,在做的时候,我关闭了窗口。。结果 就忘了这事。
一天没有启动服务器。真尴尬
Misc | 评论:0
| 阅读:8770
Submitted by gouki on 2018, December 13, 12:35 PM
基于昨天写的vue+blade+(vue-pjax-adapter),发现没有任何进度提示,感觉比较不直观,但vue-pjax-adapter不能注入方法(或许是我不会)。
在app.js里引入了nprogress后。在axios请求前尝试注入,比如:
JavaScript代码
- window.axios.interceptors.request.use((config) => {
- console.log(before);
- NProgress.configure({easing: 'ease', speed: 1000, showSpinner: true});
- NProgress.start();
- return config;
- });
- window.axios.interceptors.response.use((response) => {
- NProgress.done();
- console.log(after);
- return response;
- }, (error) => {
- return Promise.reject(error);
- });
但是没有看到有任何需求。才尝试修改了一下vue-pjax-adapter插件
用法和vue-pjax-adapter完全一样:
XML/HTML代码
- import nPjaxAdapter from 'vue-nprogress-pjax';
- window.Vue.use(nPjaxAdapter);
- /**
- * 如果不是标准的pjax-container,就是这样使用
- * // window.Vue.use(nPjaxAdapter, {
- // targetSelector: '#my-custom-target',
- // });
- */
就这样简单。现在切换页面有进度条了
代码在这里:https://www.npmjs.com/package/vue-nprogress-pjax
Javascript | 评论:0
| 阅读:11475
Submitted by gouki on 2018, December 12, 11:16 PM
如题,利用laravel-mix进行开发。HTML页面的blade,基本上只含主体结构 。具体的页面全部用vue加载(当成一个个的component)
这样就真正完全利用了vue的各种组件,然后也能享受PHP的变量开发,只是这样就得一个个的加载页面了(每次都得加载app.js,一个app.js可是将近2M的)
所以,加载vue-pjax-adapter。利用pjax的特性。少加载很多内容。但这个插件,原来也是for laravel的。用了之后,发现网址不会变了。看了下代码。他的pushState的更换居然是利用response.headers中的x-pjax-url,于是在Yii的controller->afterAction中增加:response->headers->set('x-pjax-url',url::current),一切都搞定
在开发的时候,使用mix文件的browseSync+webpack的watch。改动后自动刷新页面。也是一个不算爽的爽功能了
减轻不少压力。在没有专业前端的情况下也能享受VUE的开发乐趣(其实就是不用vuex,vue-router等)
PHP | 评论:0
| 阅读:12350
Submitted by gouki on 2018, December 12, 9:53 AM
测试了一下,将MYSQL升到了5.7的RDS,但该RDS因为不支持MYISAM,所以将表结构调整为INNODB,同时,因为PHP版本是7.2,可能带来了不少问题。
先这样尝试了。后续有问题我再调整。可能会慢上好多(很纠结)
报了很多异常。估计后续真的要转成Yii2了。其实5年前转过一次。那时候是用Yii1的,但因为中间要改的东西非常多,在写了2/3左右 的时候处理掉了。现在可能真的要重操起来了。(话说,现在PHP的博客好象也就只剩那几个了,什么Wordpress,Typecho还坚挺 的活着。)
是不是要坚持还真是一说。
Misc | 评论:0
| 阅读:11338