#nginx内网可以访问,但自己电脑浏览器就请求不到
排查防火墙,换一个浏览器
#请求服务但nginx中没有请求的日志
排查防火墙
若存在ip或端口映射,必然是ip或端口映射错误,导致请求打到其他服务器上了
#同样的内容base64加密出来的不一样
python的字符串感觉存在自动格式化的机制,如{'a':1,'b':2},可能会格式化为{'a': 1, 'b': 2}。多一个空格base64的编码就不同,但不能就编码不同这单一条件评判加密错误,因为只是样式改变,并没有改变内容本意。
#SSLError: HTTPSConnectionPool(host='1.1.1.1', port=443): Max retries exceeded with url: /api/test (Caused by SSLError(SSLError(1, u'[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:730)'),))
如存在ip或端口映射,可能是ip或端口映射错误,导致请求打到其他服务器监听443的应用系统上了。
#SSLError: HTTPSConnectionPool(host='1.1.1.1', port=443): Max retries exceeded with url: /api/test (Caused by SSLError(CertificateError("hostname '1.1.1.1' doesn't match u'2.2.2.2'",),))
被请求的服务器ip为1.1.1.1,其证书错误配置成了2.2.2.2,导致请求头中ip与证书绑定ip不匹配
#top N问题
top关键词仅sql server和access支持,mysql不支持。
mysql使用limit关键词:
limit n 返回前n条
limit n,m 分页:n=第几页*m,m=每页记录数
【搭建web项目】
Uwsgi.ini中socket = 0.0.0.0:7125
Nginx.conf中:
server {
listen 443;
server_name 192.168.124.78或者localhost;
location / {
include uwsgi_params;
uwsgi_pass 0.0.0.0:7125;
}
}
【nginx使用gunicorn+国密的写法】
server {
listen 5000 ssl;
server_name localhost;
access_log logs/$http_user_agent main;
ssl_verify_client on;
ssl_certificate /root/tasscard_engine/tassl/tassl_demo/cert/certs/SS.crt;
ssl_certificate_key /root/tasscard_engine/tassl/tassl_demo/cert/certs/SS.key;
ssl_enc_certificate /root/tasscard_engine/tassl/tassl_demo/cert/certs/SE.crt;
ssl_enc_certificate_key /root/tasscard_engine/tassl/tassl_demo/cert/certs/SE.key;
# client use the soft cert
ssl_client_certificate /root/tasscard_engine/tassl/tassl_demo/cert/certs/CA.crt;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 5000m;
location / {
limit_req zone=one burst=100000 nodelay;
proxy_set_header X-SSL-Cipher $ssl_cipher;
proxy_set_header X-SSL-Client-Cert $ssl_client_cert;
proxy_set_header X-SSL-Client-Serial $ssl_client_serial;
proxy_set_header X-SSL-Client-S-DN $ssl_client_s_dn;
proxy_set_header X-SSL-Client-I-DN $ssl_client_i_dn;
proxy_set_header X-SSL-Client-addr $remote_addr;
proxy_pass http://192.168.110.18:6125;
}
}
【常见错误】
400get或post请求错误,或者少传参数
502nginx配置有问题,或者请求超时
【网络服务器】
Java多用tomcat,python多用nginx
Python多uwsgi/gunicorn配合nginx使用,如果不通过nginx监听端口,直接链接请求uwsgi服务端口是无效的,访问效果如下:
【uwsgi启动】
uwsgi应该是pip安装,而不是yum
【python安装依赖包报错】
末尾加上:-i http://pypi.mirrors.ustc.edu.cn/simple --trusted-host pypi.mirrors.ustc.edu.cn
【离线rpm包下载命令】
1.制作requirement.txt
pip3 freeze > requirement.txt
内网安装外部依赖包办法:
例如:安装pytest包得时候会顺带安装pytest依赖包
离线下载安装包
单个离线包
pip3 download -d your_offline_packages <package_name>
批量离线包
pip3 download -d your_offline_packages -r requirements.txt
离线安装单个离线包
pip3 install --no-index --find-links=/your_offline_packages/ package_name
批量离线包
pip3 install --no-index --find-links=/your_offline_packages/ -r requirements.txt
【离线安装包下载】
在项目目录下
pip3 freeze >requirements.txt
pip3 download -r requirements.txt -d /home/offlinePackages/
pip3 install --no-index --find-links=/home/offlinePackages/ -r requirements.txt
例如:下载gcc版本9
yum -y install centos-release-scl --downloadonly --downloaddir=./
yum localinstall *.rpm -y
(先安装centos-release-scl后才能下载devtoolset等)
例如:yum -y install python包名 --downloadonly --downloaddir=./
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils --downloadonly --downloaddir=./
【linux查看kafka消费情况】
查看消费组(注意:localhost有时不可以,需要改为具体ip地址)
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
查看具体消费组的情况
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group groupname(替换成上边命令查到消费组id)
【查看topic】
sh kafka-topics.sh --list --bootstrap-server localhost:6131
【将uwsgi换成gunicorn的原因】
Flask框架跟uwsgi兼容性不好,无法通过nginx给http头部添加字段
使用flask框架时,Uwsgi无法和kafka建立长链接
【离线部署注意事项】
依赖环境,依赖包
软件安装及使用方式:命令行,参数,输入步骤,结果展示
文件传输工具(如xftp,bitvise等)连接服务器