2019-01-18
nginx的基本配置和SSL的http跳转https基本配置
在nginx中的nginx.conf下配置
http {
......
#这里为http请求动态服务配置
server { #nginx中web服务配置必须内容
listen 80; #nginx进入的端口默认80
server_name ***.***.com; #关联的网址,该网址必须在解析中指向当前nginx服务器的IP地址
location / { #这里的斜杠指向的是网址后不添加路由的基本跳转
root /*****/; #这里是动态服务的文件位置
index Login.jsp; #nginx起始跳转指向
proxy_pass http://localhost:8081/ ; #这里是动态服务的本地端口指向,如果不写则为静态指向
}
}
###################################### http跳转SSL基本配置#############################################
server {
listen 80;
server_name www.*****.***;
if ($scheme = http ) { #这里是判定请求是否为http类型
return 301 https://$host$request_uri; #这里根据301返回跳转至https,$host为请求的网址,$request_url为请求的参数内容
}
error_page 500 502 503 504 /50x.html; #错误处理 error_page报错类型指定 500 502等报错处理,斜杠后html是报错后跳转页面名
location = /50x.html { #基本路由跳转指向
root html; #跳转页面所在位置
}
}
server { #SSL服务配置
listen 443; #443默认安全端口
server_name ***.****.***; #网址
ssl on; #SSL 开启
root html; #根路径指向
index index.html index.htm;
ssl_certificate cert/****************.pem; #SSL密钥
ssl_certificate_key cert/**************.key; #SSL键 这两个都是可以申请的,自建文件可能出现谷歌浏览器不识别警告提醒
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版本 1.3版本与1.2版本差别在多个加载时有区分
ssl_prefer_server_ciphers on; #优先使用服务端加密 off则是使用客户端加密
gzip on; #gzip压缩开启
gzip_min_length 5k; #最小
gzip_buffers 4 16k; #缓存
gzip_http_version 1.0; #版本
gzip_comp_level 5; #压缩级别 共9级(太大会后悔的)
gzip_types application/javascript text/plain application/x-javascript text/css application/xml text/javascript application/x
-httpd-php image/jpeg image/gif image/png; #允许压缩的类型
gzip_vary on; #根据客户端的HTTP头来判断,是否需要压缩,用于区分浏览器支持压缩否
#这里的try_files 主要用于单页面多路由跳转的项目使用
location / { #SSL中的网址根路径指向 静态网页
root /****/**********;
try_files $uri $uri/ @router; #读取静态文件 与rewrite区别是高效率,不需要重载的就不执行 @router自定义
#$uri 是请求文件的路径 $uri/ 事请求目录的路径 与$request_uri区别为不带参数 就是问号后内容
index index.html;
if ( $query_string ~ "view=string" ) { # $query_string正则 与$args相同 ~后为正则条件
rewrite ^/index.html https://***.*****.com/index.html? permanent; #重定向跳转指定页面 permanent参数内容
}
}
location @router { #自定义校验
rewrite ^.*$ /index.html last;
}
#SSL中自定义路由指向动态服务
location /name/ { #自定义路由指向名
root /*****/******/name/; #文件路径中包涵指向路由名的文件夹
index index.jsp;
add_header Access-Control-Allow-Credentials: true; #head添加跨域请求处理
add_header Access-Control-Allow-Origin: '*'; #跨域请求网址名 通用为* 可指向指定网址名
add_header Access-Control-Allow-Headers X-Requested-With; #跨域处理AJAX请求处理 如果没有可能会导致AJAX请求302错误
add_header Access-Control-Allow-Methods GET,POST,OPTIONS; #跨域请求处理 这里会导致跨域请求多OPTIONS请求 必填
client_max_body_size 16m;
client_body_buffer_size 128k;
proxy_pass http://localhost:9090/;
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 https;
proxy_next_upstream off;
proxy_connect_timeout 30;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
}