树莓派3B开启I2C总线

编辑/boot/config.txt文件

去掉一下两行代码的注释:

dtparam=i2c1=on
dtparam=i2c_arm=on

重启树莓派,输入 i2cdetect -y -a 1 命令,出现以下提示为开启成功:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

然后使用以下代码即可获取I2C总线用于编程:

I2CBus i2cbus = I2CFactory.getInstance(I2CBus.BUS_1);

树莓派(raspberry)启用root账户

树莓派使用的linux是debian系统,所以树莓派启用root和debian是相同的。

debian里root账户默认没有密码,但账户锁定。

当需要root权限时,由默认账户经由sudo执行,Raspberry pi 系统中的Raspbian

默认用户是pi 密码为raspberry

重新开启root账号,可由pi用户登录后,在命令行下执行

sudo passwd root

执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后在执行

sudo passwd --unlock root

这样就可以解锁root账户了。

树莓派3无线wifi连接

如果你有显示器的话,直接打开可视化界面在右上角就可以可视化配置wifi了,很简单。不过很多情况我们是通过ssh连接过去的,也就有必要在终端里配置连接到wifi了。
在树莓派3上由于硬件直接支持了,所以很简单。直接编辑文件即可.先测试一下:

pi@raspi3:~ $ iwlist scan
wlan0 Scan completed :
Cell 01 - Address: 00:1E:20:50:AA:BB
Channel:8
Frequency:2.447 GHz (Channel 8)
Quality=70/70Signal level=-32 dBm
Encryption key:on
ESSID:"WIFINAME"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=0000000000000000
Extra: Last beacon: 2157000ms ago
IE: Unknown: 000546616E6379
IE: Unknown: 010882848B960C121824
IE: Unknown: 030108
IE: Unknown: 050401020000
IE: Unknown: 0706303020010B14
IE: Unknown: 2A0100
IE: Unknown: 32043048606C
IE: IEEE 802.11i/WPA2Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : CCMP TKIP
Authentication Suites (1) : PSK
IE: Unknown: 7F080000000000000040
IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00

 

可以看到周围的wifi热点信息
配置连接到某个热点:

# 编辑wifi文件
sudovim /etc/wpa_supplicant/wpa_supplicant.conf
# 在该文件最后添加下面的话
network={
  ssid="WIFINAME"
  psk="password"
}
# 引号部分分别为wifi的名字和密码
# 保存文件后几秒钟应该就会自动连接到该wifi
# 查看是否连接成功
ifconfigwlan0

Nginx SSL+tomcat集群,request.getScheme() 取到https正确的协议

最近做的一个项目, 需要使用 tomcat 集群, 且项目需要使用https协议

但是,明明是https url请求, 但是java里的 request.getScheme() 的输出却是 http

request.getRequestURL() 输出出来的 一直是
http://xxxxxxxxx/abc?value=123
但是浏览器中的URL却是
https://xxxxxxxxx/abc?value=123
查阅了一些资料,找到了解决方案:
解决方法很简单,只需要分别配置一下 Nginx 和 Tomcat 就好了,而不用改程序。
配置 Nginx 的转发选项:
proxy_set_header       Host $host;
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto  $scheme;

配置Tomcat server.xml 的 Engine 模块下配置一个 Valve:

	<Valve className="org.apache.catalina.valves.RemoteIpValve"  
                  remoteIpHeader="x-forwarded-for"  
                  remoteIpProxiesHeader="x-forwarded-by"  
                  protocolHeader="x-forwarded-proto"
                  protocolHeaderHttpsValue="https"/>

配置双方的 X-Forwarded-Proto 就是为了正确地识别实际用户发出的协议是 http 还是 https。

这样以上5项测试就都变为正确的结果了,就像用户在直接访问 Tomcat 一样。

 

参考资料:

http://www.th7.cn/Program/java/201608/929190.shtml

http://blog.csdn.net/pwq296306654/article/details/51760844

http://feitianbenyue.iteye.com/blog/2056357

使用nginx 反向代理实现负载均衡解决HTTPS 证书问题

由于项目需要 负载均衡由NBL 转成nginx 反向代理。考虑都是https模块,所以证书成了个难题。

解决方案:

1.下载openssl(windows 安装包)

2.打开bin/下面的openssl.exe

3.再原来的IIS上面把证书导出.pfx(域服务器证书申请,主要适用域内)

4.利用openssl 进行转化:

openssl pkcs12 -in server.pfx -nodes -out server.pem # 生成明文所有内容
openssl rsa -in server.pem -out server.key # 取 key 文件
openssl x509 -in server.pem -out server.crt # 取证书

5.nginx 上面开始配置:

upstream backend
{
#ip_hash;
server 10.1.0.245:81;
server 10.1.0.42:81;
}
    server {
        listen     80;
        listen     443 ssl;
        server_name  office.dahuatech.com;
        ssl_certificate      server.crt;
        ssl_certificate_key  server.key;
        #ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        #ssl_prefer_server_ciphers  on;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

      location / {
        proxy_pass  http://backend;
        #Proxy Settings
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
        }

按照上面配置就可以。这样域内所有的用户都可以在信任证书内。

记录下 送给需要的人

OPENSSL 安装包下载:Win32OpenSSL-0_9_8l.zip

CentOS 6/7 下使用yum安装nginx

Ubuntu下安装nginx,直接apt-get install nginx就行了,很方便。

但是今天装了CentOS6.2,直接yum install nginx不行,要先处理下源,下面是安装完整流程,也十分简单:

1、运行并安装源:

CentOS 7 下使用这个命令

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

CentOS 6 下使用这个命令

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

2,查看yum的nginx信息

[]# yum info nginx

Loaded plugins: fastestmirror

Determining fastest mirrors

 * base: mirror.esocc.com

 * extras: mirror.esocc.com

 * updates: mirror.esocc.com

base                                                     | 3.7 kB     00:00     

base/primary_db                                          | 4.4 MB     00:28     

extras                                                   | 3.5 kB     00:00     

extras/primary_db                                        |  19 kB     00:00     

nginx                                                    | 2.9 kB     00:00     

nginx/primary_db                                         |  22 kB     00:00     

updates                                                  | 3.5 kB     00:00     

updates/primary_db                                       | 2.1 MB     00:10     

Installed Packages

Name        : nginx

Arch        : x86_64

Version     : 1.4.0

Release     : 1.el6.ngx

Size        : 874 k

Repo        : installed

From repo   : nginx

Summary     : nginx is a high performance web server

URL         : http://nginx.org/

License     : 2-clause BSD-like license

Description : nginx [engine x] is an HTTP and reverse proxy server, as well as

            : a mail proxy server

3,安装nignx
[root@server ~]# yum install nginx

4,启动nginx

CentOS 7 下使用这个命令:

systemctl start nginx

CentOS 6 下使用这个命令

service nginx start

4,然后进入浏览器,输入http://xxxxxxx/测试,如果看到

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

恭喜你,你成功了!

5、设置为开机启动

CentOS 7 下使用这个命令

systemctl enable nginx.service

CentOS 6下使用这个命令

chkconfig nginx on

 

close