Nginx基本配置

这篇具有很好参考价值的文章主要介绍了Nginx基本配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本教程讲述Nginx的基本配置和操作。首先需要安装 Nginx,关关于具体的安装方式,可以参见Nginx简介与安装一文。为了方便,这里基于CentOS 7的官方Docker镜像来说明,你也可以使用你熟悉的任意Linux发行版。

准备环境

使用的Dockerfile如下:

FROM centos:7

RUN yum update -y

RUN yum install wget gcc pcre-devel zlib-devel -y

构建镜像:

docker build -t centos7-nginx-demo:local -f Dockerfile .

交互式运行镜像:

docker run -p 80:80 -it centos7-nginx-demo:local bash

这里便进入到了一个运行有CentOS7的Docker容器内部:

[root@b1aa50b94e9b /]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (AltArch)

安装Nginx

首先创建一个文件/etc/yum.repos.d/nginx.repo,添加以下内容:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

执行安装命令:

yum install nginx -y

成功后可以看到安装位置及版本:

[root@b1aa50b94e9b yum.repos.d]# which nginx
/usr/sbin/nginx
[root@b1aa50b94e9b yum.repos.d]# nginx -version
nginx version: nginx/1.24.0

Nginx配置

初始配置信息

Nginx的默认配置是在/etc/nginx目录下的:

[root@b1aa50b94e9b nginx]# pwd
/etc/nginx
[root@b1aa50b94e9b nginx]# ll
total 28
drwxr-xr-x 2 root root 4096 Apr 26 14:57 conf.d
-rw-r--r-- 1 root root 1007 Apr 11 17:22 fastcgi_params
-rw-r--r-- 1 root root 5349 Apr 11 17:22 mime.types
lrwxrwxrwx 1 root root   29 Apr 26 14:57 modules -> ../../usr/lib64/nginx/modules
-rw-r--r-- 1 root root  648 Apr 11 17:21 nginx.conf
-rw-r--r-- 1 root root  636 Apr 11 17:22 scgi_params
-rw-r--r-- 1 root root  664 Apr 11 17:22 uwsgi_params

nginx.conf是默认配置文件,我们先看一下它的默认初始内容:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

其中,include /etc/nginx/conf.d/*.conf;这一行又引入了其他配置文件,默认情况下只有一个:/etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

default.conf 里配置了一个 server 块,监听的是 localhost80端口。

配置详解

通过 include 命令引入的配置,与直接写在主配置文件 nginx.conf 内的效果是一样的,分开写的好处是模块化更易于后期维护更新。以上两个配置文件合在一起的效果如下:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #access_log  /var/log/nginx/host.access.log  main;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
}

1. 全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。比如上面第一行的配置:

worker_processes 1;

这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约。

2. events 块

比如上面的配置:

events {
    worker_connections  1024;
}

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 worker process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 worker process 可以同时支持的最大连接数等。上述例子就表示每个 worker process 支持的最大连接数为 1024 这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

3. http 块

这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是:http 块也可以包括 http 全局块 和 server 块。

3.1 http 全局块

http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

3.2 server 块

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

3.2.1 全局 server 块

最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。

3.2.2 location 块

一个 server 块可以配置多个 location 块。这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓
存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

启动Nginx

直接启动:

nginx

如果启动成功,浏览器打开 locahost:80,能看到 Nginx 的默认欢迎页面。

Nginx基本配置

实际使用过程中,一般会通过如下方式,来配置 Nginx 开机自启动(如果上面已经启动了 Nginx,需要先停掉):

systemctl enable nginx

便可以通过如下命令来操作 Nginx文章来源地址https://www.toymoban.com/news/detail-428764.html

# 取消开机自启动
systemctl disable nginx

# 启动 
systemctl start nginx

# 查看状态
systemctl status nginx

# 重新加载配置
systemctl reload nginx

# 重启
systemctl restart nginx

# 停止
systemctl stop nginx

参考资料

  1. nginx: Linux packages

到了这里,关于Nginx基本配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 1. Nginx 基本功能配置

    图 为 windows 版本的。 进入Nginx的主目录我们可以看到这些文件夹 client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp 其中这几个文件夹在刚安装后是没有的,主要用来存放运行过程中的临时文件 client_body_temp fastcgi_temp proxy_temp scgi_temp 目录信息: 用来存放配置文件相

    2024年02月05日
    浏览(33)
  • Nginx 有关反向代理的基本配置

    反向代理基本配置项 poxy_pass 将请求反向代理到指定的 URL,URL 可以是主机名或 IP : port 形式 也可以是 UNIX 句柄,看也可以使用 upstream 块。 配置块 :location、if 默认情况下反向代理是不会转发请求中的 Host 头部。如果要转发必须加上配置: proxy_method 此配置相表示转发时的协

    2024年04月11日
    浏览(40)
  • 【Nginx基础篇】nginx的基本配置解析和应用场景

    目录 一、最小配置 二、虚拟主机 原始的配置文件 将注释删除后最简版 worker_processes worker_processes 1 ; 默认为 1 ,表示开启一个业务进程 worker_connections worker_connections 1024 ; 单个业务进程可接受连接数 include mime.types; include mime.types ; 引入 http mime 类型 default_type application/octet-str

    2024年02月04日
    浏览(33)
  • 关于nginx的linux命令 以及 基本配置文件的配置

    nginx介绍 反向代理,https,动静分离(web 服务),负载均衡 (反向代理),web 缓存 内存少,并发能力强(支持50,000 个并发) 配置文件默认是放在/usr/local/nginx/conf/nginx.conf,配置文件中默认有三大块:全局块、events块、http块。 我们主要修改http块: 反向代理 server { location

    2023年04月23日
    浏览(46)
  • Nginx常用配置及和基本功能讲解

    作者:京东物流 殷世杰 Nginx已经广泛应用于J-one和Jdos的环境部署上,本文对Nginx的常用的配置和基本功能进行讲解,适合Nginx入门学习。 找到Nginx安装目录下的conf目录下nginx.conf文件,Nginx的基本功能配置是由它提供的。 Nginx的配置文件(conf/nginx.conf)整体上分为如下几个部分:

    2023年04月26日
    浏览(30)
  • 深入浅出Nginx的基本原理和配置指南「负载均衡篇」

    6.1 四层负载均衡 6.1.1 四层负载均衡与七层负载均衡的区别 四层负载均衡数据包是在底层就进行了分发,而七层负载均衡数据包则在最顶端进行分发,所以四层负载均衡的效率比七层负载均衡的要高。四层负载均衡不识别域名,而七层负载均衡识别域名。 6.1.2 四层负载均衡配

    2024年02月09日
    浏览(33)
  • cubmx基础操作,hal库基本配置流程之使用 stm32cubmx生成HAL库进行gpio点亮led(stm32h7xx)(超详细,小白教程)

    HAL库(硬件抽象层库)是一个提供对底层硬件操作的抽象的库,它使得开发者可以使用统一的接口进行硬件操作,而不必关心底层硬件的具体实现细节。HAL库通常由硬件厂商提供,用于支持其硬件设备,并为其提供标准化的接口。 HAL库的主要目的是简化底层硬件的操作,使得

    2024年02月20日
    浏览(46)
  • Nginx配置整合:基本概念、命令、反向代理、负载均衡、动静分离、高可用

    Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理server。其特点是占有内存少。并发能力强,其并发能力确实在同类型的网页server中表现较好。 Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器

    2024年02月16日
    浏览(33)
  • 【SpringCloud篇】Eureka服务的基本配置和操作

    Eureka是Netflix开源的一个基于REST的服务治理框架,主要用于实现微服务架构中的服务注册与发现。它由Eureka服务器和Eureka客户端组成, 其中Eureka服务器负责维护整个系统的服务实例信息,而Eureka客户端则负责向Eureka服务器注册自身信息,并从Eureka服务器获取其他服务实例的信

    2024年02月05日
    浏览(32)
  • Jenkins的下载、配置、安装和基本操作

    下载路径(镜像):http://mirrors.jenkins-ci.org/ 下载路径(官方):https://jenkins.io/download/ 可选择下载.msi文件(下载后点击进行安装)或者.war压缩包(直接放在对应文件夹下) 安装前,首先得下载安装JDK,配置Java环境(另外下载安装配置,见其他文章Java(JDK)下载安装及配置

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包