初识Nginx你需要知道的是

初识Nginx confsbinhtmllogsxxx_temp (运行时候的一些缓存)动静分离,也称为静态内容分离,是一种将动态生成的网页内容和静态资源进行拆分和分离的技术策略。在传统的 Web 应用程序中,动态网页内容和静态资源(如图片、CSS 文件、JavaScript 文件等)通常由同一个应用服务器提供。当用户请求一个页面时,应用服务器会处理逻辑、从数据库或其他数据源中获取数据,并生成完整的 HTML 页面,再将其发送给用户的浏览器。 阅读详情


关于Nginx

Nginx是一款高性能、轻量级的Web服务软件

特点

  • 稳定性高
  • 系统资源消耗低
  • 支持多种模块
  • 对HTTP并发连接的处理能力高
    单台物理服务器可支持30’000—50‘000个并发请求

编译安装Nginx服务

1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

systemctl stop firewaild
systemctl disable firewalldsetenforce 0
nginx-1.12.0.tar.gz

2.安装依赖包

nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些安装的开发包,以便提供相应的库和头文件。

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

3.创建运行用户、组

Nginx服务程序默认以nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限

useradd -M -s / sbin/nologin nginx

4.编译安装Nginx

cd /opt
tar zxvf nginx-1.12.0.tar.gz-c /opt/

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \             #指定nginx的安装路径
--user=nginx \                          #指定用户名
--group=nginx \                         #指定组名
--with-http_stub_status_module          #启用http_stub_status__module模块以支持状态统计

make & & make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/     #让系统识别nginx的操作命令

5.检查、启动、重启、停止 nginx服务

nginx -t                                 #检查配置文件是否配置正确
#启动
nginx
#停止
cat /usr/ local/nginx/ logs/ nginx.pid   #先查看nginx的PID号
kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx
#重载
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
#日志分隔,重新打开日志文件
kill -USR1 <PID号>
#平滑升级
kill -USR2 <PID号>

6.添加Nginx系统服务

方法一:
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;

stop)
   kill -s QUIT $(cat $PID)
;;

restart)
  $0 stop
  $0 start
;;

reload)
  kill -s HUP $(cat $PID)
;;

* )
echo "Usage: $0 {start|stop|restart|reload}"
exit 1

esac
exit 0

chmod +x /etc/init.d/nginx
chkconfig --add nginx          #添加为系统服务
systemctl stop nginx
systemctl start nginx
方法二:
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

Nginx服务的主配置文件nginx.conf

vim /usr/local/nginx/conf/nginx.conf

1.全局配置

#user nobody;                #运行用户,若编译时未指定则默认为nobody
worker_processes 1;          #工作进程数量,可配置成服务器内核数*2,如果网站访问量不大,一般设为1就够用了
#error_log logs/error.log;   #错误日志文件的位置
#pid logs/nginx.pid;        #PID文件的位置

2.I/o事件配置

events {
    use epoll;                #使用epoll模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能
    worker_connections 4096;  #每个进程处理4096个连接
}
#如提高每个进程的连接数还需执行"ulimit -n 65535"命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TcP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。

3.HTTP 配置

http {
    ##文件扩展名与文件类型映射表
    include.....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 logs/access.log main;
    ##支持文件发送(下载)
    sendfile       on;
    ##此选项允许或禁止使用socket的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用  
    #tcp_nopush    on;
    ##连接保持超时时间,单位是秒
    #keepalive_timeout 0;
    keepalive_timeout 65;
    ##gzip模块设置,设置是否开启gzip压缩输出
    #gzip   on;
    ##web服务的监听配置
    server {
         ##监听地址及端口
         listen 80;
         ##站点域名,可以有多个,用空格隔开
         server_name www.wolf.com;
         ##网页的默认字符集
         charset utf-8;
         ##根目录配置
         location /  {
             ##网站根目录的位置/usr/local/nginx/html
             root html;
             ##黑默认首页文件名
             index index.html index.php;
         }
         ##内部错误的反馈页面
         error_page 500 502 503 504 /50x.html;
         ##错误页面配置
         location = /50x.html {
             root html;
         }
    }
}

日志格式设定:

$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local:用来记录访问时间与时区;
$request:用来记录请求的url与http协议;
$status:用来记录请求状态;成功是200,
$body_bytes_sent:记录发送给客户端文件主体内容大小;
$http_referer:用来记录从哪个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的IP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

location常见配置指令,root、alias、proxy_pass
root(根路径配置):请求www.wolf.com/test/1.jpg,会返回文件/usr/local/nginx/html/test/1.jpg
alias(别名配置):请求www.wolf.com/test/1.jpg,会返回文件/usr/local/nginx/html/1.jpg
proxy_pass (反向代理配置):

proxy_pass http://127.0.0.1:8080/;   会转发请求到http://127.0.0.1:8080/1.jpg
proxy_pass http://127.0.0.1:8080;     会转发请求到http://127.0.0.1:8080/test/1.jpg

访问状态统计配置

1.先使用命令/usr/local/nginx/sbin/nginx -v查看已安装的Nginx是否包含HTTP_STUB_STATUS模块

2.修改nginx.conf配置文件,指定访问位置并添加stub_status配置

cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf
......
http {
......
    server {
        listen 80;
        server_name www.wolf.com;
        charset utf-8;
        location / {
            root html;
            index index.html index.php;
        }
        ##添加stub_status 配置##
        lodation /status {          #访问位置为/status
            stub_status on;         #打开状态统计功能
            access_log off;         #关闭此位置的日志记录
        }
    }
}

3.重启服务,访问测试

systemctl restart nginx

浏览器访问http:/ /192.168.101.15/status
Active connections :表示当前的活动连接数;
server accepts handled requests :表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、己处理的请求数。

基于授权的访问控制

1.生成用户密码认证文件

yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db zhangsan
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

2.修改主配置文件相对应目录,添加认证配置项

vim /usr/ local/nginx/conf/nginx.conf
......
    server {
        location / {
            ......
            ##添加认证配置##
            auth basic "secret";  #设置密码提示框文字信息
            auth_basic_user_file /usr/local/nginx/passwd.db;
        }
    }    

3.重启服务,访问测试

nginx -t
systemctl restart nginx

浏览器访问http:/ /192.168.101.15

基于客户端的访问控制

访问控制规则如下:
deny IP/IP段:拒绝某个IP或IP段的客户端访问。
allow IP/IP段:允许某个IP或IP段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。

vim /usr/local/nginx/conf/nginx.conf
......
    server {
        location / {
            ....:-
            ##添加控制规则##
            deny 192.168.101.100;     #拒绝访问的客户端IP
            allow all;                #允许其它IP客户端访问
        }
    }
systemctl restart nginx

基于域名的Nginx虚拟主机

1.为虚拟主机提供域名解析

echo "192.168.101.15 www.wolf.com www.ice.com" >> /etc/hosts

2.为虚拟主机准备网页文档

mkdir -p /var/www/html/ice
mkdir -p /var/www/html/wolf
echo "<h1>www.wolf.com</h1>" >/var/www/html/wolf/index.html
echo "<h1>www.ice.com</h1>" > /var/www/html/ice/index.html

3.修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
    server {
        listen 80;
        server_name www.wolf.com;              #设置域名www.wolf.com
        charset utf-8;
        access_log logs/www.wolf.access.log;   #设置日志名
        location / {
            root /var/www/html/wolf;           #设置www.wolf.com的工作目录
            index index.html index.php;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html {
            root html;
        }
     }

     server {
          listen 80;
          server_name www.ice.com;           #设置域名www.ice.com
          charset utf-8;
          access_log logs/www.ice.access.log;
          location / {
逐行逐句进一步了解SurroundOcc(一) 通过分析中的模型构建过程,理解了从配置文件到模型实例化的整个流程。构建过程的核心是通过build和等函数,逐步将配置文件解析并生成模型的各个模块对象,最终组合成一个完整的模型结构。这一过程涉及多个类和函数的调用,其中函数是生成对象的关键,它能够从配置字典中提取必要信息并生成对应的类实例。 阅读详情

相关推荐

STM32L452与FPGA通信翻车?手把手教你关闭I2C时钟延展避坑(附OVR错误解决方案)

本文深入解析STM32L452与FPGA在I2C通信中因时钟延展功能导致的常见问题,提供关闭I2C时钟延展的详细配置方法(NOSTRETCH模式),并针对可能出现的OVR错误给出Combined模式解决方案。通过实战案例和波形分析,帮助工程师快速排查和解决嵌入式系统中的I2C兼容性问题。

e3f4g5的博客 216

企业中常用的Nginx网站服务相关配置

文章目录前言:一、Nginx概述二、编译安装Nginx 服务三、认识 Nginx 服务的主配置文件 nginx.conf四、访问状态统计配置五、基于授权的访问控制六、基于客户端的访问控制七、基于域名的 Nginx 虚拟主机八、基于端口的虚拟主机九、基于不同IP的虚拟主机 前言: 在各种网站服务器软件中,除了 Apache HTTP Server 外,还有一款轻量级的HTTP 服务器软件------Nginx,由俄罗斯的 Igor Sysoev 开发,其稳定、高效的特性逐渐被越来越多的用户认可。 一、Ngin

Gengchenchen的博客 1699

手把手教你用CODESYS将旧笔记本改造成软PLC(含证书配置避坑指南)

本文提供了一份详尽的指南,教你如何利用CODESYS平台将闲置旧笔记本改造为一台功能完整的软PLC。内容涵盖从硬件评估、系统实时性优化、软件安装与驱动配置,到关键的证书授权管理避坑指南,旨在帮助自动化工程师和爱好者低成本搭建稳定可靠的学习与开发平台。

weixin_29190573的博客 280

宝塔配置nginx + php,并解决宝塔888端口phpmyadmin无法访问的问题,绝对可用

情景: 可能是我前面部署有其他项目吧,用了nginx占用了80端口,导致后面安装php和phpmyadmin的时候,打开phpmyadmin都是无法访问,我用的是华为云,表示安全组和防火墙都放行了888端口,都不行.在网上也找了很多,但都行不同,所以就只能自己想方法了,跟着我的步骤,肯定没错. 环境: (请安装好以下版本的环境) 宝塔面板 + Linux Centos7.x + nginx 1.16.1 + php7.4 + MySQL 5.7.30 + phpMyAdmin 5.0 那么就开始吧! 1.编

qq_40544291的博客 1万+

VMware虚拟机的安装教程

VMware 虚拟机的备份与恢复是保障数据安全和业务连续性的重要措施。综上所述,VMware 虚拟机的备份与恢复策略有多种选择,企业和用户可以根据实际需求和资源情况选择适合自己的方案,以确保虚拟机数据的安全和业务的连续性。

huanghm88的专栏 2990

S7-1200五轴伺服系统PLC控制方案与调试技巧

工业自动化领域中,多轴伺服控制是实现精密加工的核心技术。基于PROFINET实时通信协议和PLCopen运动控制标准,现代PLC(如西门子S7-1200)能够实现多轴高精度同步控制。其技术原理是通过等时同步模式确保各轴运动的时序一致性,结合PID调节和电子齿轮比实现位置闭环。这种方案在数控机床、3D打印等场景具有重要应用价值。本文以五轴联动系统为例,详细解析了S7-1200与V90伺服驱动器的硬件组态方案,包括PROFINET环网配置和IRT同步设置。在软件层面,重点介绍了基于TIA Portal的工艺对象

weixin_34332905的博客 416

Nginx静态资源站点——Nginx访客日志功能

Nginx访客日志功能 日志对于程序员很重要,可用于问题排错,记录程序运行状态,一个好的日志能够给与精确的问题定位。 Nginx日志功能需要在nginx.conf中打开相关指令log_format,设置日志格式,以及设置日志的存储位置access_log,指定日志的格式,路径,缓存大小。 #nginx.conf中有关访客日志定义如下 log_format main '$remote_addr - $remote_user [$time_local] “$request” ’ '$status $bod

weixin_43991978的博客 735

【Charge】仿真目录

Author: JiJi\textrm{Author: JiJi}Author: JiJi Created Time: 2026.01.20\textrm{Created Time: 2026.01.20}Created Time: 2026.01.20 Modified Time: 2026.01.20\textrm{Modified Time: 2026.01.20}Modified Time: 2026.01.20工作流程材料模型[Charge] 电荷分布与折射率变化理论 [Charge] FDTD

u011699626的博客 318

网站访问日志记录的两种方式

网站访问记录日志能方便的帮助我们开发人员准确的定位到问题,能帮助我们进行错误重现,快速的解决问题,节省时间。这里我将项目中用到的两种记录方式简单总结一下,希望能帮助有需要的人 本文代码需要对Spring拦截器、AOP有一定的了解,可以先百度了解下Spring拦截器、AOP的概念及用途 一、使用Spring拦截器来记录 首先创建拦截器LoggerFilter,继承HandlerIn...

悠闲咖啡007的博客 7413

LeRobot 入门教程(九)使用 Android、iOS 手机控制机械臂

本指南详细介绍了如何使用iOS/Android手机远程控制机器人。内容包括:1)安装依赖(pip install leroobot[phone]);2)平台支持说明(iOS需HEBI Mobile I/O应用/Android用WebXR);3)手机方向校准方法;4)控制模式设定(按钮/手势);5)示例脚本使用(遥操作/数据记录/回放/策略评估);6)关键参数配置(运动学/安全限制/夹爪控制);7)故障排查方法。支持ROS2集成,提供URDF文件处理、逆向运动学计算和实时可视化功能,适用于物理机器人和仿真环境

2506_90492529的博客 1659

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值)【含Matlab源码 4887期】

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值) 完整的代码,包运行;运行操作视频见优快云资源!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 811

Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲一、前言二、环境准备三、安装与配置Nginx四、Nginx之反向代理五、Nginx之负载均衡六、Nginx之页面缓存七、Nginx之URL重写 八、Nginx之读写分离注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm一、前言 ...

weixin_34293141的博客 472

基于Simulink的固态变压器(SST)多级协同控制​

本文介绍了基于Simulink的固态变压器(SST)多级协同控制方法。SST作为智能电网关键设备,其三级架构(AC-DC整流、DC-DC隔离、DC-AC逆变)存在级间耦合问题。文章提出纵向解耦与横向联动相结合的协同控制策略,详细推导了各级控制算法,并通过Simulink实现了10kV/400V级联型SST系统建模。仿真结果显示,在±20%电网波动和0-100%负载跳变下,系统能保持直流母线电压波动<2%。文章还提供了工程部署建议和代码生成方法,为SST的研发提供了实用指导。

amy_mhd的博客 303

[初识Docker ] 你需要知道的Docker 配置nginx redis

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、Docker是什么?它是如何解决兼容问题? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、Docker是什么?它是如何解决兼容问题? D...

汤圆的博客 1290

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Nginx】初识Nginx

一、前言 今天我们就来详细谈一谈Nginx!既然说到Nginx我们就不得不先来说一下web服务器和应用服务器。 二、服务器 1、 web服务器 web服务器也叫网页服务器或web服务器。WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如返回一个HTML页面。比如我们经常会用到的:Apache、Nginx、IIS等,它们的

qq_41557293的博客 2425

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

初识nginx

初识nginx常用功能

weixin_44939170的博客 641

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Nginx初识

Nginx初识 master:配置文件分析和加载、管理worker、平滑升级; worker:处理用户请求; cache loader, cache manager:缓存加载和缓存管理 nginx的其它的二次发行版:tengine、OpenResty Nginx模块: 核心模块:core module 标准模块: HTTP modules: Standard HTTP m...

super2feng博乐世界 1585

初识Nginx遇到的坑---Ip输入问题

初识Nginx,照着网上的资料配置了库,写好了helloworld外加块,编译也通过了但当使用时遇到了坑。编译完后,一般不就是打开网页然后输入本地ip测试嘛,我照着做了,结果却是: 这是什么鬼,我的程序有问题吗,找呀找终于找到原因了,这得益于这位网友的操作:https://kb.cnblogs.com/page/98352/ 他写好程序,编译后,采用的是命令行访问,具体就是:c...

007的博客 437

Nginx-1 初识 Nginx

摘要:本文介绍了Nginx的适用场景(静态资源托管、反向代理、API服务)和主要优点(高并发、高性能、可扩展性等)。详细讲解了Nginx的四个组成部分,并提供了从源码编译安装Nginx的具体步骤。文章还包含常用Nginx命令和使用方法,如启动服务、验证配置、热部署更新等操作指南。最后展示了如何在不中断服务的情况下进行 Nginx 版本升级的热部署过程。

qq_56517253的博客 988

Nginx知识点:初识Nginx

Nginx的配置文件(通常名为nginx.conf)是Nginx运行所必需的,它定义了Nginx的工作方式、监听端口、服务器配置、请求处理规则等。:Nginx采用了不同的设计思路和技术架构,如异步非阻塞的事件处理机制、master-slave模型等,使其在处理高并发请求时具有更高的效率和更好的稳定性。:随着计算机硬件技术的不断进步,服务器的处理能力得到了显著提升。综上所述,Nginx的组成是一个复杂而高效的系统,它通过核心功能、模块结构、进程模型和配置文件等多个方面的协同工作,提供了强大的Web服务能力。

w1990xw的博客 1610
上一篇: LAMP架构搭建之PHP
下一篇: 关于MySQL数据库的常识,不会吧不会吧,不会还有人不知道吧?
Alterego_
博客等级 码龄6年 14粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值