iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Nginx的几个常用配置和技巧
  • 658
分享到

Nginx的几个常用配置和技巧

2023-06-03 13:06:27 658人浏览 独家记忆
摘要

文章列举了几个Nginx常见的,实用的,有趣的配置,希望看过之后能说一句:学到了!一个站点配置多个域名server {    listen    &n

文章列举了几个Nginx常见的,实用的,有趣的配置,希望看过之后能说一句:学到了!

一个站点配置多个域名

server {
    listen       80;
    server_name  ops-coffee.cn b.ops-coffee.cn;
}

server_name 后跟多个域名即可,多个域名之间用空格分隔

一个服务配置多个站点

server {
    listen       80;
    server_name  a.ops-coffee.cn;

    location / {
        root /home/project/pa;
        index index.html;
    }
}

server {
    listen       80;
    server_name  ops-coffee.cn b.ops-coffee.cn;

    location / {
        root /home/project/pb;
        index index.html;
    }
}

server {
    listen       80;
    server_name  c.ops-coffee.cn;

    location / {
        root /home/project/pc;
        index index.html;
    }
}

基于Nginx虚拟主机配置实现,Nginx有三种类型的虚拟主机

基于IP的虚拟主机: 需要你的服务器上有多个地址,每个站点对应不同的地址,这种方式使用的比较少

基于端口的虚拟主机: 每个站点对应不同的端口,访问的时候使用ip:port的方式访问,可以修改listen的端口来使用

基于域名的虚拟主机: 使用最广的方式,上边例子中就是用了基于域名的虚拟主机,前提条件是你有多个域名分别对应每个站点,server_name填写不同的域名即可

nginx添加账号密码验证

server {
    location / {
        auth_basic "please input user&passwd";
        auth_basic_user_file key/auth.key;
    }
}

有很多服务通过nginx访问,但本身没有提供账号认证的功能,就可以通过nginx提供的autHBase账号密码认证来实现,可以用以下脚本来生成账号的密码

# cat pwd.pl 
#!/usr/bin/perl
use strict;

my $pw=$ARGV[] ;
print crypt($pw,$pw)."\n";

使用方法:

# perl pwd.pl ops-coffee.cn
opf8BIMQCAXww
# echo "admin:opf8BImqCAXww" > key/auth.key

nginx开启列目录

当你想让nginx作为文件下载服务器存在时,需要开启nginx列目录

server {
    location download {
        autoindex on;

        autoindex_exact_size off;
        autoindex_localtime on;
    }
}

autoindex_exact_size: 为on(默认)时显示文件的确切大小,单位是byte;改为off显示文件大概大小,单位KB或MB或GB

autoindex_localtime: 为off(默认)时显示的文件时间为GMT时间;改为on后,显示的文件时间为服务器时间

默认当访问列出的txt等文件时会在浏览器上显示文件的内容,如果你想让浏览器直接下载,加上下边的配置

if ($request_filename ~* ^.*?\.(txt|pdf|jpg|png)$) {
    add_header Content-Disposition 'attachment';
}

配置默认站点

server {
    listen 80 default;
}

当一个nginx服务上创建了多个虚拟主机时默认会从上到下查找,如果匹配不到虚拟主机则会返回第一个虚拟主机的内容,如果你想指定一个默认站点时,可以将这个站点的虚拟主机放在配置文件中第一个虚拟主机的位置,或者在这个站点的虚拟主机上配置listen default

不允许通过IP访问

server {
    listen       80 default;
    server_name  _;

    return      404;
}

可能有一些未备案的域名或者你不希望的域名将服务器地址指向了你的服务器,这时候就会对你的站点造成一定的影响,需要禁止IP或未配置的域名访问,我们利用上边所说的default规则,将默认流量都转到404去

上边这个方法比较粗暴,当然你也可以配置下所有未配置的地址访问时直接301重定向到你的网站去,也能为你的网站带来一定的流量

server {
    rewrite ^/(.*)$ https://ops-coffee.cn/$1    permanent;
}

直接返回验证文件

location = /XDFyle6tNA.txt {
    default_type text/plain;
    return 200 'd6296a84657eb275c05c31b10924f6ea';
}

很多时候微信等程序都需要我们放一个txt的文件到项目里以验证项目归属,我们可以直接通过上边这种方式修改nginx即可,无需真正的把文件给放到服务器上

nginx配置upstream反向代理

Http {
    ...
    upstream Tomcats {
        server 192.168.106.176 weight=1;
        server 192.168.106.177 weight=1;
    }

    server {
        location /ops-coffee/ { 
            proxy_pass http://tomcats; 

            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;
        }
    }

}

稍不注意可能会落入一个proxy_pass加杠不加杠的陷阱,这里详细说下proxy_pass http://tomcatsproxy_pass http://tomcats/的区别:

虽然只是一个/的区别但结果确千差万别。分为以下两种情况:

  目标地址中不带uri(proxy_pass http://tomcats)。此时新的目标url中,匹配的uri部分不做修改,原来是什么就是什么。

location /ops-coffee/ {
    proxy_pass  http://192.168.106.135:8181;
}

http://domain/ops-coffee/   -->     http://192.168.106.135:8181/ops-coffee/
http://domain/ops-coffee/action/abc   -->     http://192.168.106.135:8181/ops-coffee/action/abc

  目标地址中带uri(proxy_pass http://tomcats/,/也是uri),此时新的目标url中,匹配的uri部分将会被修改为该参数中的uri。

location /ops-coffee/ {
    proxy_pass  http://192.168.106.135:8181/;
}

http://domain/ops-coffee/   -->     http://192.168.106.135:8181
http://domain/ops-coffee/action/abc   -->     http://192.168.106.135:8181/action/abc

nginx upstream开启keepalive

upstream tomcat {
    server ops-coffee.cn:8080;
    keepalive 1024;
}

server {
    location / {
        proxy_http_version 1.1;
        proxy_set_header Connection "";

        proxy_pass http://tomcat;
    }
}

nginx在项目中大多数情况下会作为反向代理使用,例如nginx后接tomcat,nginx后接PHP等,这时我们开启nginx和后端服务之间的keepalive能够减少频繁创建tcp连接造成的资源消耗,配置如上

keepalive: 指定每个nginxworker可以保持的最大连接数量为1024,默认不设置,即nginx作为client时keepalive未生效

proxy_http_version 1.1: 开启keepalive要求HTTP协议版本为HTTP 1.1

proxy_set_header Connection "": 为了兼容老的协议以及防止http头中有Connection close导致的keepalive失效,这里需要及时清掉HTTP头部的Connection

404自动跳转到首页

server {
    location / {
       error_page 404 =  @ops-coffee;
    }

    location @ops-coffee {
       rewrite  .*  / permanent;
    }
}

网站出现404页面不是特别友好,我们可以通过上边的配置在出现404之后给自动跳转到首页去

--结束END--

本文标题: Nginx的几个常用配置和技巧

本文链接: https://www.lsjlt.com/news/234358.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Nginx的几个常用配置和技巧
    文章列举了几个Nginx常见的,实用的,有趣的配置,希望看过之后能说一句:学到了!一个站点配置多个域名server {    listen    &n...
    99+
    2023-06-03
  • nginx常用配置
    目录 1、全局块 2、events块 3、http块 3.1、http基本配置 3.2、http反向代理基本配置 3.3、http反向代理服务器和负载均衡 3.4、http_gzip配置 3.5、server相关配置 3.5.1、serv...
    99+
    2023-09-07
    nginx 运维 服务器
  • Nginx各个模块的配置及常用配置选项
    目录Nginx Location配置请求转发和重定向Nginx静态文件配置文件下载服务器Nginx配置HTTPSNginx日志配置Nginx超时设置请求超时设置Proxy反向代理超时...
    99+
    2024-04-02
  • Win7系统组策略的几个常用技巧总结
    第一.限制、隐藏磁盘分区 为了使用方便,我们有时也在多人共用的公用电脑中存放一些属于个人隐私级别的数据资料,为了保证这些数据的安全,可以通过对磁盘分区进行限制或隐藏来实现对数据的保护。 在打开的“组策略&rd...
    99+
    2023-05-29
    win7 组策略 常用 技巧 Win7
  • Spring外部化配置的几种技巧分享
    目录正文Envrionment 获取外部配置修改Spring默认配置文件名称Value注解配置来源外部化配置文件优先级问题Autowire注入ConfigurableEnvrionm...
    99+
    2024-04-02
  • Jupyter Notebook最常用的配置技巧有哪些
    这篇文章主要介绍“Jupyter Notebook最常用的配置技巧有哪些”,在日常操作中,相信很多人在Jupyter Notebook最常用的配置技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Jup...
    99+
    2023-06-16
  • 几个实用的嵌入式开发套路和技巧
    开发高可靠性嵌入式系统的技术有许多种,从规范完善的开发周期到严格执行和系统检查。给大家介绍7个比较好操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助技巧1——用已知值填充ROM软件开发人员往往都是非常乐观的一群...
    99+
    2023-07-31
  • 分享JPA的几个小技巧
    目录1. 基本字段介绍2. 自定义ID生成器3. 自动填充字段4. End关系型数据库其实很讨人厌,尤其是在你使用数据库驱动的开发模式时。需要首先把表给创建好了,然后再使用代码生成器...
    99+
    2024-04-02
  • Windows Server 2003几个实用小技巧
    1、取消IE增强安全配置对话框   在使用Windows Server 2003自带的IE浏览器浏览网页时,每次都会出现一个安全提示对话框,其实这是因为微软把IE的默认安全级别设置为“高”。通过...
    99+
    2023-05-23
    技巧 实用 安全 窗口 选择 对话 IE 本地
  • Nginx配置中FastCGI的几个命令分别是什么
    Nginx配置中FastCGI的几个命令分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Nginx配置一直以来都在程序...
    99+
    2024-04-02
  • Apache的配置技巧
    本篇内容介绍了“Apache的配置技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如何设 置请求等待时间   ...
    99+
    2023-06-13
  • Nginx配置相关结构划分的技巧有哪些
    这期内容当中小编将会给大家带来有关Nginx配置相关结构划分的技巧有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Nginx配置需要一定的技巧,我们在不断的使用和维护...
    99+
    2024-04-02
  • 30个Python常用小技巧
    1、原地交换两个数字x, y =10, 20print(x, y)y, x = x, yprint(x, y)10 2020 102、链状比较操作符n = 10print(1 < n < 20)print(1 > n &...
    99+
    2023-01-31
    小技巧 常用 Python
  • Nginx常用的基础配置方案
    本篇内容主要讲解“Nginx常用的基础配置方案”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Nginx常用的基础配置方案”吧!Nginx的fastcgi模块参数设置Nginx 有两个配置文件fa...
    99+
    2023-06-04
  • Nginx的一些常用配置汇总
    目录Nginx配置文件结构Nginx日志切割root 与 alias使用GZIP压缩提升请求效率location匹配规则解析使用SwitchHosts模拟本地域名解析Nginx跨域配...
    99+
    2024-04-02
  • 几个关于pythonPdf技巧的分享
    目录1.读取PDF2.删除pdf的某些页3.旋转页面4.合并pdf前言: PyPDF2是一个纯Python的开源库,能够分割或合并PDF文件,也可以裁剪或转换PDF文件中的页面。我们...
    99+
    2024-04-02
  • Nginx常用配置及和基本功能讲解
    Nginx是一个高性能的Web服务器和反向代理服务器,常用于构建高可用、高并发的Web应用。下面是Nginx的常用配置及基本功能的讲...
    99+
    2023-09-20
    Nginx
  • 分享几个JavaScript运算符的使用技巧
    目录一、可选链接运算符【?.】二、逻辑空分配(?? =)三、逻辑或分配(|| =)四、逻辑与分配(&& =)最后ECMAScript发展进程中,会有很...
    99+
    2024-04-02
  • 20个Python常用技巧分享
    目录1.字符串反转2.每个单词的第一个字母大写3. 字符串查找唯一元素4.重复打印字符串和列表n次5.列表生成6.变量交换7.字符串拆分为子字符串列表8.多个字符串组合为一...
    99+
    2023-05-14
    Python常用技巧分享 Python常用技巧 Python技巧
  • Tomcat配置必备的10个小技巧用法总结
    目录一、配置系统管理(Admin Web Application)二、配置应用管理(Manager Web Application)三、部署一个web应用四、配置虚拟主机(Virtu...
    99+
    2023-05-19
    Tomcat 配置技巧总结 Tomcat 配置技巧 Tomcat 配置
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作