2019年2月

将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。


此问题主要是没有把 /usr/local/sbin 加入path,使用下面指令可以将其加入path:

export PATH=$PATH:/usr/local/sbin

此指令只对当前终端窗口有效,关闭后失效。可将命令加入 ~/.bash_profile 文件使设置永久有效,此文件一般不存在,可新建:

vim ~/.bash_profile

加入代码:

export PATH=$PATH:/usr/local/sbin

关闭文件后,重新载入配置:

source ~/.bash_profile

重新运行命令测试是否已经可用。


macOS/Linux

通过设置代理来让终端流量走代理端口(socks5适用于大部分的流量,有些程序不走http),在终端输入:

export all_proxy=socks5://127.0.0.1:1080

取消代理:

unset all_proxy

也可以通过创建alias来设置一个“快捷命令”运行此命令:

alias proxy='export all_proxy=socks5://127.0.0.1:1080'
alias unproxy='unset all_proxy'

然后开启代理就输入:

proxy

取消代理输入:

unproxy

设置只对当前窗口有效,关闭后取消。

阅读全文


近期在开发过程中遇到一个奇怪的问题,当我复制一个文件夹到新目录时候总是失败,查看日志发现是传递地址出错了。
我是使用的是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

阅读全文