域名得先解析到公网ip,最好解析到两个公网,域名服务商有健康检查机制。
域名配置
server {
listen 443 ssl;server_name 域名;
ssl_certificate /etc/nginx/cert/************.pem; #配置证书位置
ssl_certificate_key /etc/nginx/cert/************.key; #配置秘钥位置
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使>>用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;location / {
root /opt/apk/appadmin/; #html访问路径
index index.html; #html文件名称}
}
域名80转443
server { listen 80; server_name www.test.com; rewrite ^(.*)$ https://${server_name}$1 permanent; }
nginx日志配置
log_format main '$remote_addr "-" $remote_user [$time_local] "$request" "$request_body" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$upstream_addr" $upstream_response_time $request_time';access_log /var/log/nginx/access.log main;
nginx负载与反向代理
upstream prod-api {
server 192.168.1.2:8080;
server 192.168.1.2:8080;
}server {
listen 8088;
location / {
root /opt/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
location /prod-api/ { # 反向代理到后端工程
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://prod-api/;
}}
upstream还能够为每一个设备设置状态值,这些状态值的含义分别例如以下:
ip_hash(訪问ip):每一个请求按訪问ip的hash结果分配。这样每一个訪客固定訪问一个后端服务器,能够解决session的问题。
fair(第三方):按后端服务器的响应时间来分配请求。响应时间短的优先分配。与weight分配策略相似。
url_hash(第三方):按訪问url的hash结果来分配请求,使每一个url定向到同一个后端服务器。后端服务器为缓存时比較有效。
注意:在upstream中加入hash语句。server语句中不能写入weight等其他的參数,hash_method是使用的hash算法。
down 表示单前的server临时不參与负载.
weight 默觉得1.weight越大,负载的权重就越大。
max_fails :同意请求失败的次数默觉得1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.
fail_timeout : max_fails次失败后。暂停的时间。
backup: 其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
upstream bakend{ #定义负载均衡设备的Ip及设备状态
ip_hash;
server 10.0.0.11:9090 down;
server 10.0.0.11:8080 weight=2;
server 10.0.0.11:6060;
server 10.0.0.11:7070 backup;
}
nginx转mysql 服务
注:stream 与http平级
stream {
upstream mysql {
hash $remote_addr consistent;
server 192.168.1.123:3306 weight=5 max_fails=3 fail_timeout=30s;
}server {
listen 8000;
proxy_connect_timeout 10s;
proxy_timeout 200s;
proxy_pass mysql;
}
}