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

在这里插入图片描述

Nginx是一款高性能的Web服务器和反向代理服务器,广泛应用于互联网领域。作为一名前端同学,了解并掌握Nginx的配置是非常有必要的。

安装Nginx

sudo apt-get update
sudo apt-get install nginx

查看Nginx版本

nginx -v

启动、停止、重启Nginx服务

sudo service nginx start      # 启动Nginx服务
sudo service nginx stop       # 停止Nginx服务
sudo service nginx restart    # 重启Nginx服务

Nginx配置文件结构
Nginx的主配置文件位于/etc/nginx/nginx.conf,其他配置文件位于/etc/nginx/sites-available目录下。每个站点的配置文件以站点名命名,如default、example.com等。
在这里插入图片描述

server {listen 80;          # 监听端口号server_name example.com; # 域名或IP地址root /var/www/html; # 网站根目录index index.html;   # 默认首页文件名
}

创建站点配置文件
在/etc/nginx/sites-available目录下创建一个名为example.com的文件,并将上述配置内容复制到该文件中。然后创建一个符号链接到/etc/nginx/sites-enabled目录下:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com

重启Nginx服务使配置生效

sudo service nginx restart

至此,你已经成功配置了一个基本的Nginx站点。当然,Nginx还有很多高级功能,如负载均衡、缓存、SSL等,可以根据需要进行配置。

Nginx配置示例

基础配置:

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.hqwc.cn/news/498282.html

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

相关文章

【GAD】动态图的半监督异常检测

SAD: Semi-Supervised Anomaly Detection on Dynamic Graphs Limitations of existing semi-supervised methodsContributionRelated workMethodDeviation Networks with Memory BankContrastive Learning for Unlabeled Samples Experiments少样本评估2D t-SNE可视化消融实验 …

C++之queue和dqueue

1、queue queue(队列),一种数据结构,可以让某些数据结构的操作变得简单。队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出…

Unity(第十一部)场景

游戏有多个场景组成(新手村,某某副本,主城) 场景是有多个物体组成(怪物,地形,玩家等) 物体是有多个组件组成(刚体组件,自定义脚本) 创建场景 编辑…

逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例

补充知识:进行AES解密需要知道四个关键字,即密钥key,向量iv,模式mode,填充方式pad 一般网页AES都是16位的,m3u8视频加密一般是AES-128格式 网页链接:https://www.jinglingshuju.com/articles 进行抓包结果返回的是密文: 一般思…

Sui主网升级至V1.19.1版本

其他升级要点如下所示: #16190, #16193 现在CLI正确处理并修复了交易没有输入或命令时的输出表格。例如,调用 client call — package 0x2 — module kiosk — function default 现在具有正确格式的输出。 #15928 Move编译器的一系列变更 添加了宏函…

使用Axure RP并配置IIS服务结合内网穿透实现公网访问本地HTML原型页面

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

《Redis 设计与实现》读书概要

注: 《Redis 设计与实现》一书基于 Redis 2.9 版本编写,部分内容已过时,过时之处本文会有所说明。本文为读书笔记,部分简单和日常使用较少的知识点未记录。原书网页版地址 https://redisbook.com/ 一、底层数据结构 SDS(Simple Dy…

SVN教程-SVN的基本使用

SVN(Apache Subversion)是一款强大的集中式版本控制系统,它在软件开发项目中扮演着至关重要的角色,用于有效地跟踪、记录和管理代码的演变过程。与分布式系统相比,SVN 的集中式架构使得团队能够更加协同地进行开发&…

一、深度学习介绍

目录 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景

Linux课程四课---Linux开发环境的使用(vim编辑器的相关)

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

图神经网络实战——图论

图神经网络实战——图论 0. 前言1. 图属性1.1 有向图和无向图1.2 加权图与非加权图1.3 连通图非连通图1.4 其它图类型 2. 图概念2.1 基本对象2.2 图的度量指标2.2 邻接矩阵表示法 3. 图算法3.1 广度优先搜索3.2 深度优先搜索 小结系列链接 0. 前言 图论 (Graph theory) 是数学…

c#使用log4net的3种调用方法

https://blog.csdn.net/summer_top/article/details/107961245 第一步:下载log4net。 右键项目引用,进入管理NuGet包。 搜索log4net,下载安装。 第二步:创建LogHelper类。 public class LogHelper { private LogHelp…