返回顶部
首页 > 资讯 > 服务器 >Nginx安装配置详解
  • 504
分享到

Nginx安装配置详解

2024-04-02 19:04:59 504人浏览 八月长安
摘要

不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦。不过

不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦。不过,我们往往只是需要一个静态 Server,或者一个反向代理 Server,这对 Nginx 来说小菜一碟。

简介

Nginx 的安装:

# Centos
yum install nginx;
# ubuntu
sudo apt-get install nginx;
# Mac
brew install nginx;

一般可以在/etc/nginx/nginx.conf中配置,启动参数为:

# 启动
nginx -s start;
# 重新启动,热启动,修改配置重启不影响线上
nginx -s reload;
# 关闭
nginx -s stop;
# 修改配置后,可以通过下面的命令测试是否有语法错误
nginx -t;

-s,signal,意思就是向 nginx 发送start|reload|stop命令,还是很好理解的。先看一个最简单的nginx.conf配置:

events {
    # 需要保留这一个段落,可以为空
}
Http {
    server {
        listen 127.0.0.1:8888;
        location / {
            root /home/chenya/test/;
        }
    }
}

启动后,访问htttp://127.0.0.1:8888,如果/home/chenya/test/下有index.html文件就会展示index.html的内容,否则返回404

Nginx 配置一个 WEB 服务器

以下对配置 Web 服务器的参数做简单说明,包括如何配置端口、域名,如何处理请求,如何响应请求。

1、 虚拟主机和请求的分发

域名和端口的配置

listen 127.0.0.1:8000;
listen *:8000;
listen localhost:8000;
# IPV6
listen [::]:8000;
# other params
listen 443 default_serer ssl;
listen 127.0.0.1 default_server accept_filter=dataready backlog=1024

主机名配置

server_name www.chenya.site  chenya.site
server_name *.chenya.com
server_name ~^\.chenya\.com$

URI 匹配

location = / {
    # 完全匹配  =
    # 大小写敏感 ~
    # 忽略大小写 ~*
}
location ^~ /images/ {
    # 前半部分匹配 ^~
    # 可以使用正则,如:
    # location ~* \.(gif|jpg|png)$ { }
}
location / {
    # 如果以上都未匹配,会进入这里
}

2、 文件路径的定义

根目录设置

location / {
    root /home/chenya/test/;
}

别名设置

location /blog {
    alias /home/chenya/www/blog/;
}
location ~ ^/blog/(\d+)/([\w-]+)$ {
    # /blog/20141202/article-name 
    # -> /blog/20141202-article-name.md
    alias /home/chenya/www/blog/$1-$2.md;
}

首页设置

index /html/index.html /PHP/index.php;

重定向页面设置

error_page    404         /404.html;
error_page    502  503    /50x.html;
error_page    404  =200   /1x1.gif;
location / {
    error_page  404 @fallback;
}
location @fallback {
    # 将请求反向代理到上游服务器处理
    proxy_pass http://localhost:9000;
}

try_files 设置

try_files $uri $uri.html $uri/index.html @other;
location @other {
    # 尝试寻找匹配 uri 的文件,失败了就会转到上游处理
    proxy_pass  http://localhost:9000;
}
location / {
    # 尝试寻找匹配 uri 的文件,没找到直接返回 502
    try_files $uri $uri.html =502;
}

Nginx 配置反向代理服务器

反向代理(reserve proxy)方式是指用代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络中的上游服务器,并将上游服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外的表现就是一个 Web 服务器。

Nginx 具备超强的高并发高负载能力,一般会作为前端的服务器直接向客户端提供静态文件服务;而业务一般还包含一些业务逻辑需要 Apache、Tomcat 等服务器来处理,故通常 Nginx 对外表现即为静态 Web 服务器也是反向代理服务器。

缺点是增加了一次请求的处理时间,优点是降低了上游服务器的负载,尽量将压力放在 Nginx 服务器上。

1、负载均衡配置

upstream,定义一个上游服务器集群

upstream backend {
    # ip_hash;
    server s1.chenya.com;
    server s2.chenya.com;
}
server {
    location / {
        proxy_pass http://backend;
    }
}

2、反向代理

proxy_pass 将请求转发到有处理能力的端上,默认不会转发请求中的 Host 头部

location /blog {
    prox_pass http://localhost:9000;
    ### 下面都是次要关注项
    proxy_set_header Host $host;
    proxy_method POST;
    # 指定不转发的头部字段
    proxy_hide_header Cache-Control;
    proxy_hide_header Other-Header;
    # 指定转发的头部字段
    proxy_pass_header Server-IP;
    proxy_pass_header Server-Name;
    # 是否转发包体
    proxy_pass_request_body on | off;
    # 是否转发头部
    proxy_pass_request_headers on | off;
    # 显形/隐形 URI,上游发生重定向时,Nginx 是否同步更改 uri
    proxy_redirect on | off;
}

一个简单的例子,node.js

一个十分常见的需求:处理请求,如果是静态文件,Nginx 直接返回,否则交给 node 服务器处理。首先创建了一个 Node 服务器:

const http = require('http');
http.createServer((req, res) => {
    res.end('hello world');
}).listen(9000);

任何请求过来都返回hello world,简版的 Nginx 配置如下,

events {
    # 这里可不写东西
    use epoll;
}
http {
    server {
        listen 127.0.0.1:8888;
        # 如果请求路径跟文件路径按照如下方式匹配找到了,直接返回
        try_files $uri $uri/index.html;
        location ~* ^/(js|CSS|image|font)/$ {
            # 静态资源都在 static 文件夹下
            root /home/chenya/www/static/;
        }
        location /app {
            # Node.js 在 9000 开了一个监听端口
            proxy_pass http://127.0.0.1:9000;
        }
        # 上面处理出错或者未找到的,返回对应状态码文件
        error_page    404            /404.html;
        error_page    502  503  504  /50x.html;
    }
}

首先 try_files,尝试直接匹配文件;没找到就匹配静态资源;还没找到就交给 Node 处理;否则就返回 4xx/5xx 的状态码。

测试语法

nginx -t

到此这篇关于Nginx安装配置的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Nginx安装配置详解

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

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

猜你喜欢
  • Nginx安装配置详解
    不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦。不过...
    99+
    2024-04-02
  • Nginx安装与配置详解
    Nginx负载均衡集群 一、Nginx简介1、nginx介绍2、反向代理2.1 什么是代理服务器?2.2 为什么要使用代理服务器?2.3 反向代理 VS 正向代理 3、负载均衡3.1 什么是负载均衡? 二、Nginx...
    99+
    2023-08-21
    nginx 服务器 运维
  • Centos7下nginx的安装与配置教程详解
    说明:软件安装的基础目录路径:/usr/local 所以下载软件的时候切换到此目录下下载直接解压即可 1.安装gcc gcc-c++依赖包 yum install -y gcc gcc-c++ 2.下载编译安装PCRE库...
    99+
    2022-06-04
    Centos7 nginx 安装与配置 nginx安装和配置
  • Centos7安装配置nginx
    1.前言 在进行nginx安装前,考虑到本博客针对很多新手朋友我决定还是先介绍一些nginx知识,这样更加有利于各位读者朋友对nginx的理解,对后续学习也有很大帮助。 介绍 Nginx (engin...
    99+
    2023-08-31
    nginx 运维 centos linux 服务器
  • Ubuntu20.04安装配置Nginx
    由于在学习配置时,网上的教程比较杂乱,用时很久才做好一些基础配置,把流程记录一下方便和我一样的小白学习 本文写于2023.2.10,如果间隔太久,下述内容可能会失效,请另寻教程 仅包含基础教程,个人服务未涉及到负载均衡 安装ngin...
    99+
    2023-08-20
    nginx 服务器 ubuntu
  • Docker安装Nginx并修改Nginx配置文件的方法详解
    目录一、Docker安装Nginx二、修改docker的配置文件:三、重新定义nginx配置文件:总结一、Docker安装Nginx 1、首先在虚拟机上要确保你已经启动了docker...
    99+
    2023-02-22
    docker修改nginx配置文件 docker安装nginx详解 docker配置nginx
  • nginx php-fpm安装配置
    nginx php-fpm安装配置 nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。 nginx一般是把请求发fas...
    99+
    2023-09-02
    nginx php 运维
  • nginx怎么安装配置
    这篇文章主要讲解了“nginx怎么安装配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nginx怎么安装配置”吧!一、服务器基础配 置远程链接服务器ssh 用户名@公网ip默认的...
    99+
    2023-06-29
  • Nginx如何安装配置
    这篇文章主要介绍“Nginx如何安装配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Nginx如何安装配置”文章能帮助大家解决问题。简介Nginx 的安装:# CentOSyum&nbs...
    99+
    2023-07-02
  • Nginx的安装配置教程
    一、Nginx的下载与安装 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好   1.下载 在Ngin...
    99+
    2023-09-03
    nginx 前端 服务器
  • 安装配置gunicorn和NGINX的
    博客写得差不多了,打算部署到云上因为速度的关系,不打算部署在AWS上,于是申请了阿里云,环境是上篇文章提到的CentOS 7 64位安装和配置好Python3和MySQL,又稍微了解点web服务器的知识后,打算按这里的方法进行部署,思路是...
    99+
    2023-01-31
    gunicorn NGINX
  • Nginx的安装配置介绍
    这篇文章主要介绍“Nginx的安装配置介绍”,在日常操作中,相信很多人在Nginx的安装配置介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Nginx的安装配置介绍”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-04
  • CentOS怎么安装配置Nginx
    要在CentOS上安装和配置Nginx,可以按照以下步骤进行操作:1. 更新系统软件包:```sudo yum update```2...
    99+
    2023-08-24
    CentOS Nginx
  • MacOS下安装和配置Nginx
    一、安装brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 按回车后,根据提示操作:输入镜像序号 --> 输...
    99+
    2023-08-24
    nginx macos git
  • Nginx+Tomcat负载均衡集群安装配置案例详解
    目录前言一、Nginx+Tomcat二、配置Nginx服务器三、部署Tomcat应用服务器总结前言 介绍Tomcat及Nginx+Tomcat负载均衡集群,Tomcat的应用场景,然...
    99+
    2024-04-02
  • Tomcat安装配置及Eclipse配置详解
    整个安装过程我们先学习安装JDK和配置然后是安装Tomcat和配置,最后我们学习安装Eclipse和配置以及Web程序的使用和发布举例1. 安装JDK和配置JDK的安装参照:JDK的下载、安装与部署图文教程(1)下载JDK安装包:https...
    99+
    2023-05-30
    tomcat 安装 eclipse
  • Nginx配置使用详解
    配置步骤: 1、配置nginx的方法:首先要打开“/etc/nginx/conf.d/”文件夹; 2、然后创建配置文件;接着在“/etc/ngi...
    99+
    2024-04-02
  • 详解Keepalived安装与配置
    一、简介 Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)和 high-av...
    99+
    2022-06-04
    Keepalived 安装配置
  • 详解BurpSuite安装和配置
    目录Burp Suite是什么Burp Suite如何安装1.配置Java环境2.安装Burp Suite破解版下载地址传送门设置Http代理 拦截请求Burp Suite是什么 B...
    99+
    2024-04-02
  • 详解:Flannel安装与配置
    Flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。简介...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作