网站首页 > 技术教程 正文
一、前言
loang loang ago,在前后端分离之后,这个项目一直都是采用的http,并且有打算说是配置Https。拖了那么久终于在前阵子完成了,在这里做一个简要的记录。
二、SSL证书
2.1、什么是SSL证书
开启Https是数字证书的一种,由受信任的数字证书机构颁发。在服务器配置了SSL之后其访问具有身份验证和数据传输加密功能。
2.2、SSL证书如何获取
SSL证书的获取有诸多途径,我这里是用过腾讯云免费申请的SSl证书。
附上相关信息:
申请链接
2.3、申请到后如何使用
证书文件有以下几种(以我申请的为例):
以Nginx为例,配置Https分别需要文件夹中的以下文件:
三、Nginx
3.1、什么是Nginx
借用网络上的一段话:
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
3.2、下载Nginx
在Nginx官网可以下载到你所需要的版本,然后解压到服务器上(Linux使用命令处理)
3.3、配置Nginx
Nginx的主要配置集中在他的Config文件,下面附上我的相关配置,每一行都有其作用的说明:
########### 每个指令必须有分号结束。#################
# 配置用户或者组,默认为nobody nobody。
#user nobody;
# 允许生成的进程数,设置值和cpu核心数一样(默认1)
worker_processes 2;
# 错误日志相关,
# 制定日志路径,级别。这个设置可以放入全局块,http块,server块,
# 级别以此为:debug|info|notice|warn|error|crit|alert|emerg
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定nginx进程运行文件存放地址
#pid logs/nginx.pid;
events {
# 最大连接数,默认为512
worker_connections 1024;
}
http {
# 文件扩展名与文件类型映射表
include mime.types;
# 默认文件类型,默认为text/plain
default_type application/octet-stream;
# access_log off; #取消服务日志
# 自定义格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# combined为日志格式的默认值
#access_log logs/access.log main;
# 允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile on;
# 连接超时时间,默认为75s,可以在http,server,location块。
keepalive_timeout 65;
# 开启缓存配置
# proxy_cache_path 缓存文件路径
# levels 设置缓存文件目录层次;levels=1:2 表示两级目录
# keys_zone 设置缓存名字和共享内存大小
# inactive 在指定时间内没人访问则被删除
# max_size 最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。
proxy_cache_path /XA/nginx/cache levels=1:2 keys_zone=xaCache:20m max_size=50g inactive=1d;
# 开启gzip
gzip on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
gzip_comp_level 6;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";
# 设置压缩所需要的缓冲区大小
gzip_buffers 4 16k;
# 设置gzip压缩针对的HTTP协议版本
gzip_http_version 1.0;
server {
# 监听端口
listen 80;
# 监听地址
server_name guangmuhua.com;
# 重定向
return 301 https://$server_name$request_uri;
location / {
# 允许cros跨域访问
add_header 'Access-Control-Allow-Origin' *;
# 代理转发
proxy_pass http://guangmuhua.com:8080;
}
# 匹配以/api/开头的请求。正则匹配,~为区分大小写,~*为不区分大小写。
location /api {
# 允许cros跨域访问
add_header 'Access-Control-Allow-Origin' *;
# 代理转发
proxy_pass https://guangmuhua.com:9001;
}
# 缓存静态资源文件
location ~* ^.+\.(css|js|ico|gif|jpg|jpeg|png)$ {
log_not_found off;
# 关闭日志
access_log off;
# 缓存时间7天
expires 7d;
# 源服务器
proxy_pass http://guangmuhua.com:8080;
# 指定上面设置的缓存区域
proxy_cache xaCache;
# 缓存过期管理
proxy_cache_valid 200 302 1d;
proxy_cache_valid 404 10m;
proxy_cache_valid any 1h;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
}
}
# HTTPS server
server {
# 监听端口,开启HTTP2
listen 443 ssl http2;
# 监听地址
server_name guangmuhua.com;
# SSL正式和秘钥
ssl_certificate guangmuhua.crt;
ssl_certificate_key guangmuhua.key;
# 储存session参数的缓存大小及过期时间
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# SSL加密套件
ssl_ciphers HIGH:!aNULL:!MD5;
# 是否由服务器决定采用哪种加密算法
ssl_prefer_server_ciphers on;
location / {
# 允许cros跨域访问
add_header 'Access-Control-Allow-Origin' *;
# 代理转发
proxy_pass http://guangmuhua.com:8080;
}
# 匹配以/api开头的请求
location /api {
# 允许cros跨域访问
add_header 'Access-Control-Allow-Origin' *;
# 代理转发
proxy_pass https://guangmuhua.com:9001;
}
# 缓存静态资源文件
location ~* ^.+\.(css|js|ico|gif|jpg|jpeg|png)$ {
log_not_found off;
# 关闭日志
access_log off;
# 缓存时间7天
expires 7d;
# 源服务器
proxy_pass http://guangmuhua.com:8080;
# 指定上面设置的缓存区域
proxy_cache xaCache;
# 缓存过期管理
proxy_cache_valid 200 302 1d;
proxy_cache_valid 404 10m;
proxy_cache_valid any 1h;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
}
}
}
四、Nginx的启停
到Niginx的根目录下:
启动: start nginx
停止: nginx -s stop
猜你喜欢
- 2024-10-11 阿里的这份支持千万级并发Nginx Web服务器详解PDF也有人说不行?
- 2024-10-11 Nginx配置多个网站/项目的简单方式
- 2024-10-11 学会Nginx,跟着腾讯大牛走,一套整理的核心NginxPDF文档奉上!
- 2024-10-11 程序员和产品经理必收藏的工具网站 在线工具方便工作 收藏备用
- 2024-10-11 Welcome to nginx!(Welcome to nginx!1)
- 2024-10-11 nginx如何成为全球头号web服务器(nginx做服务器)
- 2024-10-11 看完这篇Nginx官方文档,相信你一定彻底搞懂Nginx了(建议收藏)
- 2024-09-21 想学习Nginx,看阿里P8架构师精心整理的一套的Nginx(PDF文档)
- 2024-09-21 Nginx高性能web服务器详细讲解(nginx实现高性能用到的关键技术)
- 2024-09-21 周六福利!分享一本Nginx高性能Web服务器实战教程
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)