访问https 的时候出现了443 ssl error 作者: lovingyu_er 时间: 2021-02-19 18:21:44 分类: 编程语言,NGINX,Ubuntu,运维优化 评论 在使用curl访问```https://darrykinger.com```的时候,出现了如下: ``` error : curl: (35) Unknown SSL protocol error in connection to darrykinger.com:443 ``` google,百度无果,但是先前我打开了我的nginx 的debug 功能,在```nginx```的```error```会输出详细的错误日志记录,通过追踪,发现出现了下面的错误提示: ``` error : no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: xx.xx.xx.xx, server: 0.0.0.0:443 ``` 问题原因:原来是nginx的配置文件中,多个文件都监听了 ``` 443 ```端口。修改一下,问题就消失。 记录一下,防止下一次会忘记。
trojan 搭建 教程【非一键脚本】 作者: lovingyu_er 时间: 2021-02-19 18:09:00 分类: 编程语言,NGINX,Ubuntu,运维优化 1 条评论 ####简介 trojan 翻译成中文为特洛伊木马。Trojan将通信流量伪装成互联网上最常见的https流量,从而有效防止流量被检测和干扰。在敏感时期,基本上只有trojan和 v2ray伪装 能提供稳如狗的体验。 官网地址:```https://github.com/trojan-gfw``` git仓库地址:```https://github.com/trojan-gfw/trojan``` ####部署安装 #####准备工作 1. 域名 2. 外网服务器一台(linux衍生系统即可,推荐使用ubuntu) - 阅读剩余部分 -
Nginx 如何支持http和https的访问 作者: lovingyu_er 时间: 2020-09-23 17:06:00 分类: NGINX,运维优化,Swoole-PHP 评论 在配置网站的http和https访问的时候,我们一般会将http直接重定向的https的网址,我的网站在引入websocket-test测试的时候,出现了https的时候,不能测试ws的协议,安全考虑就是https网址不能访问ws,在FIrefox的浏览器中会提示: ``` DOMException: The operation is insecure. ``` 在google Chrome中会提示: ``` websocket-test.html:230 Mixed Content: The page at 'https://darrykinger.com/websocket-test.html' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://ws.domain.com:9502/uuid/api'. This request has been blocked; this endpoint must be available over WSS. ``` 原因:HTTPS是基于SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密,所以在HTTPS站点调用某些非SSL验证的资源时浏览器可能会阻止。同理ws和wss也是 解决方案: 配置nginx ,使其既支持https和http协议,我原来的网址访问都是从http自动跳转到https,在配置文件中,有了重定向的功能: ``` server { listen 80; server_name domain.com; return 301 https://$server_name$request_uri; } ``` 先将该模块配置注释掉: ``` #server { # listen 80; # server_name darrykinger.com; # return 301 https://$server_name$request_uri; # } ``` 在另外一个server模块中,增加一些修改,原来的配置如下:(....代表是省略了,因为在下面的配置中都没有更改) ``` server { listen 443 ; ssl on; root /usr/share/nginx/html/typecho; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name darrykinger.com; ssl_certificate /etc/nginx/cert.pem; ssl_certificate_key /etc/nginx/cert.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; .... location / { .... } ..... } ``` 更改后如下: ``` server { listen 80; listen 443 ssl; # ssl on; root /usr/share/nginx/html/typecho; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name darrykinger.com; ssl_certificate /etc/nginx/cert.pem; ssl_certificate_key /etc/nginx/cert.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ... ssl_prefer_server_ciphers on; location / { ... } .... } ``` 配置项目中,将原来的```ssl on;```修改为```ssl offf;```,也就是在访问该模块的时候,并不开启服务器与浏览器证书验证,但是并不是就关闭了```listen xx;```的此处的配置,用户可以在```listen xx;```里面进行灵活的配置.也就是在访问https的时候要进行证书验证,那么在访问http的时候,不进行证书的验证。 ######ssl参数: ``` Syntax: ssl on | off; Default: ssl off; Context: http, server ``` 该参数在```1.15.0```的版本中会被弃用。```The ssl parameter of the listen directive should be used instead.``` 这个```ssl```参数会被```listen```参数的配置中取代,所以,在进行配置的时候,要注意自己的nginx版本。
Nginx 过滤掉HEAD,OPTION请求,不写入到nginx的access.log文件中 作者: lovingyu_er 时间: 2020-03-20 14:11:30 分类: NGINX,运维优化 评论 ####access.log文件不计入head,option请求 nginx的默认的```log_format```的名称是```combined```,如果你找不到,一般都是这个名称,我试过几台nginx服务器,都是```combined``` 在```nginx.conf```文件中,使用```map```定义变量: ```bash map $request_method $loggable { HEAD 0; OPTIONS 0; default 1; } ``` 然后在```access.log```那一行,将配置修改为: ```bash access_log /var/log/nginx/access.log combined if=$loggable; ``` 然后检测```nginx```的配置是否有问题 ```sudo nginx -t``` 结果如下: ```bash nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ``` 出现上述的提示,说明配置文件没有问题,```reload``` ```sudo /etc/init.d/nginx reload``` 配置文件生效。
阿里云负载均衡搭建出现的问题 作者: lovingyu_er 时间: 2020-03-13 15:08:00 分类: 编程语言,NGINX,Ubuntu,运维优化 评论 简单的在阿里云的负载均衡控制台,购买了一个阿里内网的负载均衡实例,处理好后,在两台实例上出现了很多302的http 状态嘛,但是IP都是如下的:  想到搭建了SLB 负载均衡服务,很大的可能是因为slb的心跳检测,发现在后台停止slb的服务,这种频繁的访问就没有了。 ###Redis 远程链接: ```redis-cli -h ip_address```