rewrite指定的域名必须和ssl证书一致,如果证书带www则www不能省略
server {
listen 80;
server_name html.cn www.html.cn qh.html.cn;
rewrite ^/(.*)$ https://html.cn:443/$1 permanent; #把http的域名请求转成https
}
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 65535;#最大65536 操作系统最大可打开的句柄数
multi_accept on;# 收到新连接通知后接受尽可能多的连接,作用于event
use epoll;# 作用于event的I/O多路复用模型
}
http {
include /etc/nginx/mime.types; #游览器支持的类型
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
#开启文件的高效传输模式。tcp_nopush和tcp_nodelay可防止网络及磁盘i/o阻塞,提升nginx工作效率;
sendfile on;
#数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。
tcp_nopush on;
#只要有数据包产生,不管大小多少,就尽快传输
tcp_nodelay on;
# #限制用户连接数来预防DOS攻击
# limit_conn_zone $binary_remote_addr zone=perip:10m;
# limit_conn_zone $server_name zone=perserver:10m;
# #限制同一客户端ip最大并发连接数
# limit_conn perip 2;
# #限制同一server最大并发连接数
# limit_conn perserver 20;
# #限制下载速度,根据自身服务器带宽配置
# limit_rate 300k;
#客户端、服务端设置
server_names_hash_bucket_size 128;
server_names_hash_max_size 512;
# 长连接超时配置
keepalive_timeout 65;
client_header_timeout 15s;
client_body_timeout 15s;
send_timeout 60s;
#设置缓存空间,存储缓存文件
proxy_cache_path /data/nginx-cache levels=1:2 keys_zone=nginx-cache:20m max_size=50g inactive=168h;
#客户端请求主体的缓冲区大小
client_body_buffer_size 512k;
#客户端请求头部的缓冲区大小,这个可以根据系统分页大小来设置
client_header_buffer_size 4k;
client_max_body_size 512k;
large_client_header_buffers 2 8k;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
#指定在何种情况下一个失败的请求应该被发送到下一台后端服务器
proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
gzip on;
gzip_min_length 100k; #设置允许压缩的页面最小字节数,页面字节数从header 头的 Content-Length 中获取
gzip_buffers 4 16k; #压缩缓冲区大小。表示申请 4 个单位为 16K 的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储
gzip_http_version 1.1; #压缩版本(默认 1.1 ,前端为 squid2.5 时使用 1.0 )
gzip_comp_level 5; #压缩比率。用来指定 gzip 压缩比, 1 压缩比最小,处理速度最快;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 用来指定压缩的类型,“ text/html ”类型总是会被压缩,这个就是 HTTP 原理部分讲的媒体类型。
gzip_vary on; #支持。该选项可以让前端的缓存服务器缓存经过 gzip 压缩的页面,例如用 Squid 缓存经过 Nginx 压缩的数据
gzip_static on; # nginx 会优先匹配你的 gzip 文件来返回,如果没有就寻找相应资源进行 gzip 压缩再返回
gzip_disable "MSIE [1-6].";#不使用gzip IE6
include /etc/nginx/conf.d/*.conf; #配置文件地址
}
server_tokens off;
server {
listen 80;
server_name html.cn www.html.cn qh.html.cn;
rewrite ^/(.*)$ https://html.cn:443/$1 permanent; #把http的域名请求转成https
}
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name html.cn www.html.com qh.html.cn;
#证书文件名称
ssl_certificate /etc/nginx/ssl/html.cn/html.cn_bundle.crt;
#私钥文件名称
ssl_certificate_key /etc/nginx/ssl/html.cn/html.cn.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站运行目录在/etc/www下,则填写/etc/www。
root /usr/share/nginx/html;
index index.html index.htm;
# if ($request_filename ~* ^.*?.(gif|jpg|jpeg|png|bmp|swf)$){
# # add_header Cache-Control no-cache;
# add_header Cache-Control max-age=1h;
# # expires 30d;
# }
# add_header Cache-Control private;
}
location ~ .*.(eot|svg|ttf|woff|jpg|jpeg|gif|png|ico|cur|gz|svgz|mp4|ogg|ogv|webm) {
proxy_cache nginx-cache;
proxy_cache_valid 200 304 302 1h;
proxy_cache_key '$host:$server_port$request_uri';
add_header X-Cache '$upstream_cache_status from $host';
#所有静态文件直接读取硬盘
root /usr/share/nginx/html;
expires 30d; #缓存30天
}
location ~ .*.(js|css)?$ {
proxy_cache nginx-cache;
proxy_cache_valid 200 304 302 1h;
proxy_cache_key '$host:$server_port$request_uri';
add_header X-Cache '$upstream_cache_status from $host';
#所有静态文件直接读取硬盘
root /usr/share/nginx/html;
expires 1h;
}
location ^~/api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forworded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:4399/;
}
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Vue优化文章推荐juejin.cn/post/702393…