您好!欢迎来到源码码网

nginx的基本使用(常用命令,配置说明,反向代理)

  • 源码教程
  • 来源:源码码网
  • 编辑:admin
  • 时间:2021-06-02 14:00
  • 阅读:420

nginx是一款高性能的http代理服务器,其特点是占有内存少,并发能力强。我们可以通过配置文件实现强大功能,是web服务器的不二之选,下边跟对源码码网(www.ymama.net)小编一起来学习下nginx的常用命令,配置说明,反向代理等基本使用。

一.常用命令

  1. 查看帮助,命令:nginx -h

  2. 检查配置文件是否存在问题,命令:nginx -t 配置文件路径(nginx.conf)

  3. 根据指定配置文件启动,命令:nginx -c 配置文件路径(nginx.conf)

  4. 暴力停止服务,命令:nginx -s stop

  5. 优雅停止服务,命令:nginx -s quit

  6. 重新加载配置文件,命令:nginx -s reload

二. 配置说明

Nginx配置文件结构主要分为五部分,分别是:

  1. 全局部分:主要设置一些全局参数,比如:用户组,最大连接数,超时时间,日志文件存放路径等;

  2. events部分:配置网络连接相关设置,比如每个进程最大网络连接数;

  3. http部分:http包含多个server,配置代理,缓存或第三方模块;

  4. server部分:配置服务器相关参数,比如服务器地址,监听的端口;

  5. location部分:配置请求路由,根据规则比配;

结构如下:

...              #全局部分

events {         #events部分
  ...
}

http      #http部分
{
   ...   #http全局部分
   server        #server部分
   {
       ...       #server全局部分
       location [PATTERN]   #location部分
       {
           ...
       }
       location [PATTERN]
       {
           ...
       }
   }
   server
   {
     ...
   }
   ...     #http全局部分
}

详细结构如下:

########### 每个指令必须有分号结束。#################
#user administrator administrators;  #配置用户或者组,默认为nobody nobody。
#worker_processes 2;  #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
   accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
   multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
   #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
   worker_connections  1024;    #最大连接数,默认为512
}
http {
   include       mime.types;   #文件扩展名与文件类型映射表
   default_type  application/octet-stream; #默认文件类型,默认为text/plain
   #access_log off; #取消服务日志    
   log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
   access_log log/access.log myFormat;  #combined为日志格式的默认值
   sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
   sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
   keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。

   upstream mysvr {  
     server 127.0.0.1:7878;
     server 192.168.10.121:3333 backup;  #热备
   }
   error_page 404 https://www.baidu.com; #错误页
   server {
       keepalive_requests 120; #单连接请求上限次数。
       listen       4545;   #监听端口
       server_name  127.0.0.1;   #监听地址      
       location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
          #root path;  #根目录
          #index vv.txt;  #设置默认页
          proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
          deny 127.0.0.1;  #拒绝的ip
          allow 172.18.5.54; #允许的ip          
       }
   }
}

三. 反向代理

如有一个服务,地址是:192.168.161.120 端口为:9080
假设我需要通过192.168.161.120直接访问这个服务,配置如下:

server {
listen 80;
server_name 192.168.161.120;
#charset koi8-r;

#access_log logs/host.access.log main;

location /{
proxy_pass http://192.168.161.120:9080;
root html;
index index.html index.htm;
}
}

四. 跨域访问

    在前后端分离部署的情况,时常会遇到session失效的问题,这通常是因为跨域造成的,那nginx就能很好的解决这个问题;

   比如前端服务地址为:192.168.161.120 端口为:9080;后端接口地址为:192.168.161.121 端口为:8080,则配置如下:

     server {
listen 80;
server_name 192.168.161.120;
#charset koi8-r;

#access_log logs/host.access.log main;
#前端访问配置
       location /{
proxy_pass http://192.168.161.120:9080/;
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 Cookie $http_cookie;
proxy_ignore_headers Set-Cookie;
add_header Access-Control-Allow-Origin *;
}

#后端访问接口配置
location /api/{
proxy_pass http://192.168.161.120:8080/;
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 Cookie $http_cookie;
proxy_ignore_headers Set-Cookie;
add_header Access-Control-Allow-Origin *;
}
}

五. 配置文件中root和alias区别

     1. root方式的处理结果是:root路径+location路径;

     2. alias方式的处理结果是:alias路径替换location路径;

    如下所示:访问http://192.168.161.120/img/test.png;实际存储目录为:/itcdns/static/img/test.png

#root方式
location /img/ {
      root /itcdns/static/;
}
#alias方式,
location /img/ {
     alias /itcdns/static/img/;
}

通过http://192.168.161.120/img/test.png就可以访问到图片了!!!


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 常用测试压力工具使用介绍
  • 常用测试压力工具使用介绍
  • ab 是 ApacheBench 工具的缩写,它是一个HTTP压力测试工具。让我详细说明如何测试:1. 安装ApacheBenchWindows系统:方法一:安装XAMPP或WAMP(自带ab)下载地址:https://www.apachefriends.org/zh_cn/index.html安装后,ab工具在:C:xamppapacheinab.exe方法二:使
  • 开发工具
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-13 20:27
  • 阅读:62
  • 工程项目一体化自动管理软件解决方案
  • 工程项目一体化自动管理软件解决方案
  • 1.项目概述1.1项目背景在工程建设行业数字化转型浪潮下,传统项目管理面临信息孤岛、协同困难、进度不可控、成本超支等痛点。本方案旨在构建一个覆盖工程项目全生命周期、全参与方、全业务流程的一体化智能管理平台。1.2解决方案愿景打造数据驱动、智能协同、风险预警、自动执行的工程大脑,实现:管理流程自动化率≥80%项目协同效率提升40%成本偏差率降低至±3%以内安全事故发生率降低60%1.3目标用户矩阵┌───────────────┬
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:26
  • 阅读:170
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 第一部分:需求文档1.项目概述1.1项目背景为企事业单位、车队运营商、租赁公司等提供一套完整的车辆全生命周期管理解决方案,实现车辆管理数字化、智能化。1.2项目目标建立车辆从购置到报废的全流程管理体系实现用车申请、调度、监控、结算的闭环管理通过数据分析优化车辆使用效率降低车辆运维成本20%以上1.3用户角色矩阵┌──────────────┬─────────────────────────────┬──────────────
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:11
  • 阅读:163
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档文档版本: V1.0项目目标: 构建一个集环境智能监测、设备自动化控制、生长模型分析、溯源管理与远程指挥于一体的综合物联网管理平台,实现降本增效、提质增产、风险预警与品牌增值。1.系统总体概述1.1核心价值: 数据驱动决策,解放人力,实现农业/渔业生产的精准化、自动化与智能化。1.2用户角色:生产员/养殖员: 现场巡视、接收告警、执行设备手动控制、查看实时环境
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:04
  • 阅读:68
  • 程序员AI编程工具推荐
  • 程序员AI编程工具推荐
  • AI编程工具是当前开发者的“副驾驶”,能够极大提升开发效率。以下我将从通用型、代码专用型、垂直领域型以及开源/自部署型几个维度为您分类推荐,并附上它们的核心特点和适用场景,帮助您选择。一、通用型AI对话助手(编程是核心能力之一)这类工具本质是“更懂代码的ChatGPT”,适合处理广泛的编程问题、解释代码、生成文档等。ChatGPT(GPT-4/4o)简介:行业标杆,尤其在GPT-4版本下,代码理解和生成能力极强。优点:上下文能力强,
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:56
  • 阅读:97
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部