您的位置:首页 > 健康 > 养生 > php商城_福州开发企业网站_数据营销_seo入门培训学校

php商城_福州开发企业网站_数据营销_seo入门培训学校

2025/1/8 11:37:02 来源:https://blog.csdn.net/weixin_43698776/article/details/144826308  浏览:    关键词:php商城_福州开发企业网站_数据营销_seo入门培训学校
php商城_福州开发企业网站_数据营销_seo入门培训学校

前后端分离(前端 + flask):


http {server_tokens off;  # 隐藏版本号# 想要彻底清除 Server 响应头可以选择 ngx_headers_more 模块,这个模块需要额外安装。或者直接安装 nginx-extras 包也会带上这个模块。more_clear_headers Server;  # 清除 Server 响应头# 阻止ip访问server {# default_server 是一个配置参数,用于指定当请求的域名(Host 头)没有匹配任何 server 块时,Nginx 应该使用哪个 server 块来处理这些请求。 listen 443 ssl default_server;server_name _; # 匹配所有未配置的域名或IP,这样设置了 default_server 的 server 块(即本块)就会处理所有未匹配的请求。ssl_certificate 证书.pem;  # 签名证书路径,相对路径、绝对路径都可以ssl_certificate_key 私钥.key;  # 私钥路经return 403;  # 返回禁止访问}# https配置模板server {# https的默认端口是443,只有把端口写成443,登录网站的时候才不需要写端口号listen 443 ssl;# [::] 是 IPv6 的通配符地址,表示监听所有可用的 IPv6 地址(类似于 IPv4 的 0.0.0.0)listen [::]:443 ssl;# Nginx 会先检查请求的域名是否与某个 server_name 精确匹配,# 如果没有精确匹配,会尝试使用通配符匹配。如果没有找到匹配的 server_name,Nginx 会将请求交给 default_server 的 server 块。server_name 这里写你的域名;# ssl配置,证书可以使用免费的Let's Encrypt生成,阿里云上也有,但是签名需要域名,# 不需要域名的可以自己使用 openssl 创建自签名证书,但是自签名证书不受信任ssl_certificate 证书.pem;  # 签名证书路径,nginx支持pem格式的证书ssl_certificate_key 私钥.key;  # 私钥路经# 启用ssl协议,强制使用 TLS 1.2 和 1.3 版本ssl_protocols TLSv1.2 TLSv1.3; # 启用加密套件,加密套件的顺序用冒号分隔。很重要,Nginx 会按照这个顺序选择一个加密套件ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';# 强制性要求浏览器在加密连接时优先使用 服务器端 的加密套件ssl_prefer_server_ciphers on;  # 会话缓存:会话缓存能够存储客户端和服务器之间建立的 SSL/TLS 会话,避免每次请求都重新建立完整的握手过程,从而提升性能,减少 CPU 使用。通常 1 MB 可以存储大约 4000 个会话。ssl_session_cache  shared:SSL:1m;  # 会话缓存时间:用于设置 SSL 会话缓存中会话的过期时间。在指定时间内,客户端可以重用之前缓存的会话,对于大多数网站,设置为 5m(5 分钟)到 10m(10 分钟)是合理的范围。ssl_session_timeout  5m;  # 向 HTTP 响应中添加自定义的 HTTP 头部信息。语法:add_header <header_name> <value> [always];# add_header 指令可以写在 http、server 或 location 块中,作用范围会逐级缩小。如果多个级别的 add_header 冲突,优先使用最具体(内层)的配置。# 强制客户端使用 HTTPS 访问,防止中间人攻击。# max-age=31536000:缓存 1 年。includeSubDomains:对子域生效。preload:允许加入浏览器 HSTS 预加载列表。# [always]: 默认情况下,add_header 只会在响应状态码为 200、204、206、301、302、303 或 304 时添加。如果加上 always 参数,头部会在所有响应中添加(包括错误状态码,如 404 或 500)。add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;# 只允许特定的 HTTP 方法。add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";# 限制加载资源的来源,防止恶意脚本注入。# default-src 'self' 仅允许加载本域的资源。如果你不熟悉域的概念就别用# script-src 'self' 'unsafe-inline'  限制脚本加载来源,仅允许本域和内联脚本。如果你不熟悉域的概念就别用# img-src 'self' data: 限制图片来源,仅允许本域和 data: 协议。add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; img-src 'self' data:;";# 启用 gzip 压缩,优化传输速度和网络带宽使用。gzip on;# 文件大于 1KB 才压缩,对于小文件(小于 1KB 的资源),压缩的效果不明显,还可能导致处理开销增加,因此跳过。gzip_min_length 1024;# 设置压缩等级为 5,这是一种性能和压缩比的折中选择。Gzip 压缩需要消耗服务器的 CPU 资源,过高的压缩等级可能增加服务器的负载。推荐压缩等级为 4~6。gzip_comp_level 5;# 指定要压缩的资源类型:text/plain: 纯文本文件。text/css: CSS 样式表文件。application/json: JSON 数据(比如 API 响应)。# application/javascript: JavaScript 文件。text/xml 和 application/xml: XML 文件。image/svg+xml: 矢量图片(SVG 格式)。# 图片文件通常不需要 Gzip 压缩。他们已经是高度压缩了。gzip_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml;# 添加 Vary: Accept-Encoding 头部用于通知缓存服务器根据客户端是否支持 Gzip 压缩返回不同的内容。gzip_vary on;# 为所有代理请求启用压缩,适用于反向代理场景。gzip_proxied any; # location 指令用于定义一个位置块,它根据请求的 URI 匹配特定的路径。location也可以嵌套在其他location块中。# 前端代理,根路径 / 指向静态文件 index/index.html。location / {# 指定静态文件的根目录root   html/course;# 指定当请求为url目录时,默认返回的页面index  index/index.html;}# 后端代理,将 /api/ 开头的请求转发到后端服务器的 http://localhost:5000 上location /api/ {# proxy_pass 指定代理的后端服务器的地址。# 注意:http://localhost:5000/ 和 http://localhost:5000 所代表的url拼接规则是不一样的。自己去搜 proxy_pass 参数怎么用proxy_pass http://localhost:5000/;# proxy_set_header 用于设置转发给后端服务器的请求头部。# Host头部保持了原始请求的Host值。proxy_set_header Host $host;# X-Real-IP头部记录了原始客户端的IP地址。proxy_set_header X-Real-IP $remote_addr;# X-Forwarded-For头部是一个逗号分隔的列表,包含了从客户端到代理服务器的所有IP地址(包括客户端的IP地址)。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# X-Forwarded-Proto头部记录了原始请求使用的协议(如http或https)。proxy_set_header X-Forwarded-Proto $scheme;}# WebSocket 代理,我使用的是 flask_socketio,请根据实际情况修改匹配的urllocation /socket.io/ {proxy_pass http://localhost:5000;# 这里必须使用 http1.1 版本,因为1.1版本才是长连接proxy_http_version 1.1;# 设置 Upgrade 请求头,用于处理协议升级(从 HTTP 升级到 WebSocket)。proxy_set_header Upgrade $http_upgrade;# 强制将 Connection 设置为 "upgrade",以支持协议切换。proxy_set_header Connection "upgrade";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 $scheme;# 设置超时时间为 60 秒,用于保持 WebSocket 连接。proxy_read_timeout 60s;}# 单独按文件类型配置静态资源,可以单独为图片、CSS、JS 文件设置不同的缓存策略。# 也可以写到某页的 location 块中。比如:# location / {#     root   html/course;#     index  index/index.html;#     expires 30d;#     add_header Cache-Control "public, max-age=2592000";# }# 这里我选择统一缓存网站的所有静态资源,使用正则表达式匹配文件后缀。每页的 location 块中也可以单独配置,如上。# 配置图片、视频缓存location ~* \.(jpg|jpeg|png|gif|ico|svg|webp|mp4)$ {# 必须设置 root 参数,指定静态文件的根目录。不然无法找到静态文件。root html/course;# 设置静态资源的缓存时间为 30 天。expires 30d;# 设置浏览器缓存策略。public:表示该资源可以被任何缓存(包括浏览器缓存和中间代理缓存)存储和共享。max-age=2592000 表示缓存时间为 30 天。# 浏览器在 30 天内不会重新请求资源,直接从本地缓存加载。add_header Cache-Control "public, max-age=2592000";}# 配置 CSS 和 JS 文件缓存location ~* \.(css|js)$ {root html/course;expires 1d; # 缓存 1 天add_header Cache-Control "public, max-age=86400";}# 页面资源(HTML 文件)location ~* \.(html)$ {root html/course;add_header Cache-Control "no-cache, no-store, must-revalidate"; # 确保内容实时更新}# 防止访问隐藏文件(如 .git 文件)location ~ /\. {deny all;}# 404错误页面配置:当请求的文件不存在时,转入 /404.html 页面error_page  404              /404.html;# 匹配 /404 错误页面,=表示精确匹配location = /404.html {# 指定 404.html 页面的位置root /usr/share/nginx/html/404.html;}}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com