Nginx 常用的基础配置(前端相关方面)

Nginx配置前端 web 服务这篇文章;希望能够帮助更多的朋友。

基础配置

user                            root;
worker_processes                1;events {worker_connections            10240;
}http {log_format                    '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';include                       mime.types;default_type                  application/octet-stream;sendfile                      on;#autoindex                    on;#autoindex_exact_size         off;autoindex_localtime           on;keepalive_timeout             65;gzip                          on;gzip_disable                  "msie6";gzip_min_length               100;gzip_buffers                  4 16k;gzip_comp_level               1;gzip_types                  text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_types                    "*";gzip_vary                     off;server_tokens                 off;client_max_body_size          200m;server {listen                      80 default_server;server_name                 _;return                      403 /www/403/index.html;}include                       ../serve/*.conf;
}

隐藏 Nginx 版本信息

http {server_tokens         off;
}

禁止ip直接访问80端口

server {listen                80 default;server_name           _;return                500;
}

启动 web 服务 (vue 项目为例)

server {# 项目启动端口listen            80;# 域名(localhost)server_name       _;# 禁止 iframe 嵌套add_header        X-Frame-Options SAMEORIGIN;# 访问地址 根路径配置location / {# 项目目录root 	    html;# 默认读取文件index           index.html;# 配置 history 模式的刷新空白try_files       $uri $uri/ /index.html;}# 后缀匹配,解决静态资源找不到问题location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { root           html/static/;}# 图片防盗链location ~/static/.*\.(jpg|jpeg|png|gif|webp)$ {root              html;valid_referers    *.deeruby.com;if ($invalid_referer) {return          403;}}# 访问限制location /static {root               html;# allow 允许allow              39.xxx.xxx.xxx;# deny  拒绝deny               all;}
}

PC端和移动端使用不同的项目文件映射

server {......location / {root /home/static/pc;if ($http_user_agent ~* '(mobile|android|iphone|ipad|phone)') {root /home/static/mobile;}index index.html;}
}

一个web服务,配置多个项目 (location 匹配路由区别)

server {listen                80;server_name           _;# 主应用location / {root          html/main;index               index.html;try_files           $uri $uri/ /index.html;}# 子应用一location ^~ /store/ {proxy_pass          http://localhost:8001;proxy_redirect      off;proxy_set_header    Host $host;proxy_set_header    X-Real-IP $remote_addr;proxy_set_header    X-Forwarded-Forproxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;}# 子应用二location ^~ /school/ {proxy_pass          http://localhost:8002;proxy_redirect      off;proxy_set_header    Host $host;proxy_set_header    X-Real-IP $remote_addr;proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;}# 静态资源读取不到问题处理rewrite ^/api/profile/(.*)$ /(替换成正确路径的文件的上一层目录)/$1 last;
}# 子应用一服务
server {listen                8001;server_name           _;location / {root          html/store;index               index.html;try_files           $uri $uri/ /index.html;}location ^~ /store/ {alias               html/store/;index               index.html index.htm;try_files           $uri /store/index.html;}# 接口代理location  /api {proxy_pass          http://localhost:8089;}
}# 子应用二服务
server {listen                8002;server_name           _;location / {root          html/school;index               index.html;try_files           $uri $uri/ /index.html;}location ^~ /school/ {alias               html/school/;index               index.html index.htm;try_files           $uri /school/index.html;}# 接口代理location  /api {proxy_pass          http://localhost:10010;}
}

配置负载均衡

upstream my_upstream {server                http://localhost:9001;server                http://localhost:9002;server                http://localhost:9003;
}server {listen                9000;server_name           test.com;location / {proxy_pass          my_upstream;proxy_set_header    Host $proxy_host;proxy_set_header    X-Real-IP $remote_addr;proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;}
}

SSL 配置 HTTPS

server {listen                      80;server_name                 www.xxx.com;# 将 http 重定向转移到 httpsreturn 301 https://$server_name$request_uri;
}server {listen                      443 ssl;server_name                 www.xxx.com;ssl_certificate             /etc/nginx/ssl/www.xxx.com.pem;ssl_certificate_key         /etc/nginx/ssl/www.xxx.com.key;ssl_session_timeout         10m;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                    /project/xxx;index                   index.html index.htm index.md;try_files               $uri $uri/ /index.html;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

归并排序详解

目录 ​💡基本思想 💡图文介绍 💡动图演示 💡过程解释 💡代码实现 💡递归实现 💡非递归实现 💡总结 💡基本思想 归并排序(MERGE-SORT)是…

数据结构--串

本文为复习的草稿笔记,,,有点乱 1. 串的基本概念和基本操作 串是由零个或多个字符组成的有限序列 2. 串的存储结构 3.串的应用 模式匹配 BF算法(简单匹配算法 穷举法 算法思路:从子串的每一个字符开始依次与主串…

深耕文档型数据库12载,SequoiaDB再开源

1月15日,巨杉数据库举行SequoiaDB新特性及开源项目发布活动。本次活动回顾了巨杉数据库深耕JSON文档型数据库12年的发展历程与技术演进,全面解读了SequoiaDB包括在高可用、安全、实时、易用性四个方向的技术特性,宣布了2024年面向技术社区的开…

无法打开浏览器开发者工具的可能解决方法

网页地址: https://jx.xyflv.cc/?url视频地址url 我在抖音里面抓了一个视频地址, 获取到响应的json数据, 找到里面的视频地址信息 这个网站很好用: https://www.jsont.run/ 可以使用js语法对json对象操作, 找到所有视频的url地址 打开网页: https://jx.xyflv.cc/?urlhttps:…

【Linux C | 文件操作】目录相关操作 | mkdir、rmdir、opendir、readdir、closedir、getcwd、chdir

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

【LeetCode】栈精选9题

目录 1. 删除字符串中的所有相邻重复项(简单) 2. 逆波兰表达式(中等) 3. 基本计算器 II(中等) 4. 字符串解码(中等) 5. 验证栈序列(中等) 6. 小行星碰撞…

1月18日课前练习题

调整一个三位的百位,十位,个位 的数字让调整后的数字最大 //参数num:进行调整的整数 //返回值:调整后的最大整数 package com.ztt.Demo06Exercise;public class test { //1月18日public static void main(String[] args) {int n234;int retto…

新能源汽车智慧充电桩方案:基于视频监控的可视化智能监管平台

一、方案概述 TSINGSEE青犀&触角云新能源汽车智慧充电桩方案围绕互联网、物联网、车联网、人工智能、视频技术、大数据、4G/5G等技术,结合云计算、移动支付等,实现充电停车一体化、充电桩与站点管理等功能,达到充电设备与站点的有效监控…

有效防范网络风险的关键措施

在数字化时代,企业面临着日益复杂和频繁的网络风险。提高员工的网络安全意识是防范网络威胁的关键一步。本文将探讨企业在提升网络安全意识方面可以采取的措施,以有效预防潜在的网络风险。 1. 开展网络安全培训:企业应定期组织网络安全培训&…

面板小程序命令行工具介绍

Ray 体系提供配套的工程化解决方案。 由于多端构建的一些客观原因,在构建流程的设计上,必须将工程套件安装在项目内。 项目内的依赖至少包含以下内容: {"dependencies": {"ray-js/ray": "latest"},"de…

GDB 调用无符号的任意函数

我们知道有符号的函数调用很简单了,直接像写c语言一样传参调用即可。但是无符号的就不知道怎么弄了,查遍了整个网络我都没有查到怎么做。只好自己想办法了。总体的思路如下 1. 保存好所有的现场,如寄存器,当前pc, 返回地址&#…

Django migration 新增外键的坑

TL;DR 永远不要相信 makemigrations! migrate 之前一定好好看看 migrate 了啥东西,必要时手动修改生成的 migrate 文件。 最好把db的更新与服务代码更新解耦 场景 先描述下场景: 现在有两个表,一个是 question,一…

vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持

文章目录 一、v-model是什么二、什么是语法糖三、v-model常见的用法1、对于输入框(input):2、对于复选框(checkbox):3、对于选择框(select):4、对于组件(comp…

java基本算法

1.链表 链表用来存储数据,由一系列的结点组成。这些结点的物理地址不一定是连续的,即可能连续,也可能不连续,但链表里的结点是有序的。一个结点由数据的值和下一个数据的地址组成。一个链表内的数据类型可以是多种多样的。数组也是…

【git】git更新远程分支到本地

更新远程文件到本地方式一 查看远程仓库 git remote -v 从远程获取最新版本到本地 git fetch origin tmp 比较远程分支和本地分支git log -p aaa origin/tmp 合并远程分支到本地 git merge origin/tmp远程文件到本地方式二,在本地建临时分支,合并后删除 …

中霖教育:2024年一建、二建考试问题整理

报名、考试时间: ①一建:报名时间6月;考试时间9月上旬 ②二建:报名时间1-3月份;考试时间6月 考试科目: ①一级建造师考试科目一共有四门,依次是《建设工程经济》、《建设工程法规及相关知识》、《建设工程项目管理》、《专业工…

Vue以弹窗形式实现导入功能

目录 前言正文 前言 由于个人工作原因,偏全栈,对于前端的总结还有些初出茅庐,后续会进行规整化的总结 对应的前端框架由:【vue】avue-crud表单属性配置(表格以及列) 最终实现的表单样式如下:…

C++引用10分钟入门教程

我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。 对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字节,对…

深入浅出AI落地应用分析:国内Top10应用

接下来会每周集中体验一些通用或者垂直的AI落地应用,主要以一些全球或者国外国内排行较前的产品为研究对象,「AI 产品榜: aicpb.com」以专题的方式在博客进行分享。 1. 文心一言 产品链接:https://yiyan.baidu.com/ 产品介绍&…