首页 > 系统相关 >Nginx 常用的基础配置(web前端相关方面)

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

时间:2023-07-12 13:56:45浏览次数:33  
标签:web http index 前端 server Nginx html proxy location

基础配置

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-For
    proxy_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 重定向转移到 https
return 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;
}
}

 

标签:web,http,index,前端,server,Nginx,html,proxy,location
From: https://www.cnblogs.com/privateLogs/p/17547288.html

相关文章

  • 盘点前端实现文件下载的几种方式
    前端涉及到的文件下载还是很多应用场景的,那么前端文件下载有多少种方式呢?每种方式有什么优缺点呢?下面就来一一介绍。1.使用a标签下载通过a标签的download属性来实现文件下载,这种方式是最简单的,也是我们比较常用的方式,先来看示例代码:<a href="http://www.baidu.com" downl......
  • GPT生产前端代码
    我让GPT生成一段前端代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Document</title><linkhref="https://cdn.quilljs.com/1.3.6/quill.snow.css"rel="......
  • nginx部署vue网站
    1.背景        最近gpt很火,于是尝试用gpt来进行古诗词取名,做了一个vue的网站进行展示,第一次部署,踩了一些坑。2.实施nodejs安装:在任意目录执行如下命令进行安装包下载:wgethttps://npm.taobao.org/mirrors/node/v14.17.6/node-v14.17.6-linux-x64.tar.gz解压 tar......
  • 记一个nginx的配置
    cat/usr/share/nginx/html/index.htmlHelloMyApp|Version:v1|<ahref="hostname.html">PodName</a>location/{root/usr/share/nginx/html;indexindex.htmlindex.htm;}#error_page404......
  • 老杜 JavaWeb 讲解(九) ——模板方法设计模式、HttpServlet源码分析
    (十一)模板方法设计模式、HttpServlet源码分析对应视频:20-HttpServlet源码分析及web欢迎页11.1模板方法设计模式不用使用在上面右侧表格中,Person就是模板方法设计模式当中的模板类,通常是抽象类。day()方法就是模板方法设计模式当中的模板方法。模......
  • 【websocket】小白快速上手flask-socketio
    大家好,我是一个初级的Python开发工程师。本文是结合官方教程和代码案例,简单说下我对flask-socketio的使用理解。 一、websocket简介websocket说白一点就是,建立客户端和服务端双向通讯通道,服务器可以主动向客户端发消息。 二、flask-socketio理解与使用1.环境准备:Python......
  • JavaWeb回顾与小结(八)
    分模块设计与开发介绍将项目按照功能拆分成若干个子模块,方便项目管理维护,扩展,也方便模块间的互相调用,资源共享分模块开发的好处增强代码的复用性:一些通用的工具类,实体类可以抽取到独立的模块,进行重用便于分工:按业务划分模块可以让开发人员编写代码更为独立,互不干扰......
  • Java扩展Nginx之三:基础配置项
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览经历了前面两篇的入门和编译源码之后,从本篇起,咱们用理论结合实战的方式进入系统的nginx-clojure学习之旅作为《Java扩展Nginx》系列的第三篇,本文会与大家一起了......
  • 《Web安全基础》02. 信息收集
    目录1:CDN绕过1.1:判断是否有CDN服务1.2:常见绕过方法1.3:相关资源2:网站架构3:WAF4:APP及其他资产5:资产监控本系列侧重方法论,各工具只是实现目标的载体。命令与工具只做简单介绍,其使用另见《安全工具录》。1:CDN绕过CDN(ContentDeliveryNetwork,内容分发网络)是构建在现有网络......
  • Visual Studio C# 多环境配置 Web.config
    目录添加解决方案配置添加配置转换添加应对的配置预览转换发布只对生成项目生效代码区分 开始以为像SpringBoot那样,运行时也行效的,结果发现只对发布生效,VS里运行时不生效,凑活着用。.NetCoreappsettings.json改进了VisualStudio为多环境配置Web.config不同......