nginx 杂记

 nginx location语法参考

https://www.cnblogs.com/duhuo/p/8323812.html

配置示例 

vue 二级目录

location ~ /xxx/ {
        try_files $uri $uri/ /bbb/index.html;
    }

正向代理配置

支持访问https,使用选项:curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

server {
    listen 8443; # Nginx监听的本地端口用于接收客户端的代理请求
    resolver 8.8.8.8; # DNS解析器地址,用于解析上游服务器域名

    proxy_connect;
    proxy_connect_allow            443;
    proxy_connect_connect_timeout  10s;
    proxy_connect_read_timeout     10s;
    proxy_connect_send_timeout     10s;

    location / {
        proxy_pass $scheme://$host$request_uri; # 将请求代理至HTTPS服务器
        proxy_set_header Host $host; # 传递原始Host头给后端服务器
    }
}

支持访问https,必须使用选项:curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS); // Available since PHP 7.3.0 and cURL 7.52.0

server {
    listen 8443 ssl; # Nginx监听的本地端口用于接收客户端的代理请求
    resolver 8.8.8.8; # DNS解析器地址,用于解析上游服务器域名

    ssl_certificate /usr/local/nginx/cert/server.crt;
    ssl_certificate_key /usr/local/nginx/cert/server.key;

     proxy_connect;
     proxy_connect_allow            443;
     proxy_connect_connect_timeout  10s;
     proxy_connect_read_timeout     10s;
     proxy_connect_send_timeout     10s;

    access_log /data/www/logs/proxy.log main;
    location / {
        proxy_pass $scheme://$host$request_uri; # 将请求代理至HTTPS服务器
        proxy_set_header Host $host; # 传递原始Host头给后端服务器
    }
}

证书可以使用自签名的证书,但是这样php这边就不能验证证书是否有效了。 

// 不检查代理服务器证书 (Available since PHP 7.3.0 and cURL 7.52.0)
curl_setopt($ch, CURLOPT_PROXY_SSL_VERIFYPEER, false); // 不验证代理服务器的证书的有效性
curl_setopt($ch, CURLOPT_PROXY_SSL_VERIFYHOST, false); // 不验证代理服务器的域名是否与证书中的域名匹配

PHP完整示例 

<?php
//要访问的目标页面
$page_url = "https://www.baidu.com/";

//代理ip,由快代理提供
$proxy = "192.168.88.128:8443";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $page_url);

//设置代理
curl_setopt($ch, CURLOPT_PROXY_SSL_VERIFYPEER, false); // 不验证代理服务器的证书的有效性
curl_setopt($ch, CURLOPT_PROXY_SSL_VERIFYHOST, false); // 不验证代理服务器的域名是否与证书中的域名匹配
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS);
curl_setopt($ch, CURLOPT_PROXY, $proxy);

//自定义header
$headers = array();
$headers[] = 'User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
$info = curl_getinfo($ch);
echo curl_error($ch), PHP_EOL;
curl_close($ch);

echo $result;
echo "\n\nfetch " . $info['url'] . "\ntimeuse: " . $info['total_time'] . "s\n\n";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值