一、nginx配置
配置文件路径:/conf/nginx.conf
#user nobody;
worker_processes 1; #进程数,一般cpu核数是多少就设置多少
#worker_cpu_affinity 01 10; #多核cpu的配置,有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭
#worker_rlimit_nofile 65535; #最大打开文件数
#error_log logs/error.log;
error_log logs/null;
#pid logs/nginx.pid;
events {
#use epoll; ##IO模型,支持大量连接和非活动连接,linux才可用
worker_connections 10240;
#multi_accept on; #nginx在已经得到一个新连接的通知时,接收尽可能多的连接
#accept_mutex on; #防止惊群现象发生,默认为on
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
charset utf-8;
access_log off;
server {
listen 80;
server_name localhost;
return 301 https://$server_name$request_uri;
location / {
proxy_pass http://tomcatserver;
proxy_set_header X-Real-IP $remote_addr;
proxy_send_timeout 60;
}
}
upstream tomcatserver {
#ip_hash; #默认是轮巡策略,ip_hash是根据ip绑定到一个tomcat
server localhost:8081;
server localhost:8082;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
access_log off;
location / {
proxy_pass http://tomcatserver;
proxy_set_header X-Real-IP $remote_addr;
proxy_send_timeout 60;
}
}
}
二、Java端获取真实ip
map.put("realip", request.getHeader("X-Real-IP"));
三、https配置(利用OpenSSL生成证书)
安装好OpenSSL后cmd进入安装目录下的bin目录,执行以下语句:
1.创建服务器私钥
windows要先执行后面这段(值为OpenSSL安装路径):set OPENSSL_CONF=D:\tools\OpenSSL-Win64\bin\openssl.cfg
openssl genrsa -des3 -out server.key 1024
2.创建签名请求的证书(csr),csr核心内容是一个公钥
openssl req -new -key server.key -out server.csr
3.去除使用私钥是的口令验证
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
4.标记证书使用私钥和csr
openssl x509 -req -days 36500 -in server.csr -signkey server.key -out server.crt
x509是一种证书格式
server.crt就是我们需要的证书
5.nginx配置见步骤一 ssl_certificate 部分
备:生成keystore
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12
keytool -importkeystore -v -srckeystore server.p12 -srcstoretype pkcs12 -srcstorepass zhzn123 -destkeystore server.keystore -deststoretype jks -deststorepass zhzn123
四、利用keeplived实现nginx高可用
原理:利用ARRP协议实现虚拟ip漂移
注意:nginx挂了之后,keeplived也要跟着挂掉,linux系统可以利用shell脚本实现