分类 Development 下的文章

将http请求重定向为https,使所有连接都使用安全的ssl。

重定向所有http请求

以下配置为将所有收到的80端口的请求都重定向到443端口,这会把此ip下的所有域名都转换:

server {
    listen           80;
    listen           [::]:80;
    server_name      _;
    return           301 https://$host$request_uri;
}

listen 80 default_server 表示这是唯一监听80端口的server块
server_name _ 表示监听所有使用的域名

重定向特定域名

以下配置为重定向特定域名的请求,此方式适用于此ip下绑定多个域名的情况:

server {
    listen           80;
    listen           [::]:80;
    server_name      your.domain;
    return           301 https://your.domain$request_uri;
}

443 server block

设定我们的域名只接收443端口的访问:

server {
    listen                443 ssl default_server;
    listen                [::]:443 ssl;
    server_name           foo.com;
}

server {
    listen                443 ssl;
    listen                [::]:443 ssl;
    server_name           bar.com;
}

...

只能设置一个域名为default_server。


近期在开发过程中遇到一个奇怪的问题,当我复制一个文件夹到新目录时候总是失败,查看日志发现是传递地址出错了。
我是使用的是Boost的filesystem C++库处理文件,下面是代码片段,将path类型的地址放入一个指针,然后调用其他function:

fs::path childDir = np;
childDir += "/\\" + dir_itr->path().filename().string();
const char* c_childDir = childDir.string().c_str();

我在本机实验是没有问题,但在他人电脑上提示directory error。
我将path里的地址先存放到一个string里然后在转换为char*,发现问题解决了。
我想可能的原因就是path不能直接使用其指针地址。下面是修改后的程序片段:

string s_childDir = newDir;
s_childDir += "/\\" + dir_itr->path().filename().string();
const char* c_childDir = s_childDir.c_str();

以上就是关于boost库里使用path的指针问题的解决方法。


Project V 是一个工具集合,它可以帮助你打造专属的基础通信网络。Project V 的核心工具称为V2Ray,其主要负责网络协议和功能的实现,与其它 Project V 通信。V2Ray 可以单独运行,也可以和其它工具配合,以提供简便的操作流程。

GitHub:https://github.com/v2ray/v2ray-core
官网:https://www.v2ray.com
客户端下载:https://github.com/v2ray/v2ray-core/releases

阅读全文



Cloudflare以向客户提供网站安全管理、性能优化及相关的技术支持为主要业务。通过基于反向代理的内容分发网络(Content Delivery Network,CDN)及分布式域名解析服务(Distributed Domain Name Server),Cloudflare可以帮助受保护站点抵御包括拒绝服务攻击在内的大多数网络攻击,确保该网站长期在线,同时提升网站的性能、加载速度以改善访客体验。

官网:https://cloudflare.com
官方手册:https://support.cloudflare.com/hc/en-us/categories/200275218

阅读全文