Nginx配置大全

article/2025/3/16 17:11:01

1.nginx下载

下载地址:nginx: download

 2.nginx结构分析

conf-------配置文件

contrib-----应用模块

docs--------说明文档

html--------首页/错误页面

logs---------日志文件

temp--------临时文件

nginx.exe-----主程序

3.nginx配置文件解析

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}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;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   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   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;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

 3.1 全局块(建议修改)

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

worker_processes  1;

 

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

一般客户环境建议是cpu的核数。

3.2 events块(不建议修改)

events {worker_connections  1024;
}

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。

  上述例子就表示每个 work process 支持的最大连接数为 1024.

这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

3.3 http块

http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}}

这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。

  需要注意的是:http 块也可以包括 http全局块server

①、http 全局块

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

②、server 块

  这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。后面会详细介绍虚拟主机的概念。

  每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

  而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

  1、全局 server 块

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

  2、location 块

  一个 server 块可以配置多个 location 块。

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

4. nginx正向代理

正向代理和反向代理的区别,一句话就是:如果我们客户端自己用,就是正向代理。如果是在服务器用,用户无感知,就是反向代理。

如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理,下面是正向代理的原理图。

由于工作环境原因,日常工作只能局限于单位的局域网,如果想要访问互联网,怎么办呢?这就需要用到正向代理,用正向代理来进行上网。

5.nginx反向代理

看下面原理图,就一目了然。其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。

5.1 反向代理实列1(单个)

实现效果:使用 Nginx 反向代理,访问 192.168.17.129:80 直接跳转到 127.0.0.1:8080

注意:此处如果要想从192.168.17.129跳转到本机指定的ip,需要修改本机的hosts文件。

配置代码:

如上配置,Nginx监听 80 端口,访问域名为 www.123.com(不加端口号时默认为 80 端口),故访问该域名时会跳转到 127.0.0.1:8080 路径上。

此处的意思为:nginx 反向代理服务监听 192.168.17.12980端口,如果有请求过来,则转到proxy_pass配置的对应服务器上,仅此而已。
location下,同时配置rootproxy_pass选项时,两个选项只会二选一执行

5.2 反向代理实列2(路径区分)

实现效果:使用 Nginx 反向代理,根据访问的路径跳转到不同端口的服务中,Nginx 监听端口为 9001

访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081

访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8082

第一步,需要准备两个 tomcat,一个 8001 端口,一个 8002 端口,并准备好测试的页面

第二步,修改 nginx 的配置文件,在 http 块中配置 server

5.3 反向代理实列3(路径区分,涉及静态文件配置)

5.4 nginx反向代理实列4(负载均衡)

 

 

  1. 轮询(默认)

上面配置的就是轮询,如果其中一个宕机,另外一个不受任何影响

  1. weight 权重

weight 代表权重,默认为1,权重越高被分配的客户端越多       
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

  1. ip_hash

每个请求按访问iphash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话Session丢失的问题

  1. 最少连接

web请求会被转发到连接数最少的服务器上

 6 nginx https配置

需要SSL证书,域名商提供,或者可以使用阿里的免费一年的证书

不同的服务商 https的有些不同

 

7.nginx启动/刷新配置/重启

 

需要修改其中的cd目录

8.另外常见的配置(后续更新)

设置上传附件大小

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/qowVe8eN.shtml

相关文章

nginx+php-fpm的安装和配置

环境 虚拟机:VMware 16.2.4 OS:centos 7.6 远程连接工具:Xshell 7 nginx版本: nginx-1.14.2 php版本:php-7.2.12 一、nginx安装准备 1.将压缩包上传到指定目录并解压 2.进入解压后生成的nginx目录 3.创建worker进…

nginx配置多个PHP项目

部署项目 1、静态网页 2、laravel项目(含laravel-admin) 静态网页部署见文章域名备案完后网站部署 在上篇文章中nginx.conf中user 为root ,访问是成功的,后续看了一些文章,提示最好不要用root启动nginx 指定其他用户(…

CentOS7 --详细配置Nginx支持PHP程序

为了弄好php和nginx,耗费了我不少时间,哎。整体来说过程不是很难,主要是中间出的问题让人头疼。 第一步:selinux和防火墙设置 (之前安装好nginx,启动成功后,仍旧访问不了页面。发现是防火墙和s…

配置Nginx来支持PHP

人工手动安装好了LNMP环境,但在网站上打开php网页都变成了下载。研究了一下,原来是Nginx还没配置好以支持php。 修改Nginx的配置文件 我的Nginx安装目录是 /usr/local/nginx,切换到该目录: cd /usr/local/nginx打开nginx.conf配…

Ubuntu 20.04 安装配置nginx + PHP

步骤 ## 先清除干净相关的软件,例如apache、php、nginx本身 sudo apt update sudo apt-get autoremove --purge php-fpm sudo apt-get autoremove --purge apache2 sudo apt-get autoremove --purge nginx ## 开始安装nginx sudo apt-get install nginx ## 设置U…

配置Linux+Nginx+php环境搭建

1.安装pcre。pcre是一个perl库,Nginx的HTTP模块使用pcre来解析正则表达式。 2.安装zlib。zlib是一个文件压缩和解压缩的库,Nginx使用zlib对HTTP数据包进行gzip压缩和解压。 yum -y install gcc pcre-devel.x86_64 zlib-devel.x86_64 已安装:gcc.x86_64…

安装PHP解析环境 nginx配置php 实现mysql的连接

什么是PHP:1、PHP是一种被广泛应用的开源通用脚本语言,尤其适用于 Web 开发。 2、拥有快速,灵活,实用的特点,PHP能做任何事,包括你的个人博客甚至是全球性的大型站点系统。 下面实例操作安装PHP软件包 首…

ubuntu22.4配置nginx和php

实验操作步骤 安装ngix 这里使用命令: sudo apt install nginx 2. icestoneicestone-nb:~$ sudo apt install nginx 3. [sudo] icestone 的密码: 4. 正在读取软件包列表... 完成 5. 正在分析软件包的依赖关系树... 完成 6. 正在读取状态信息... 完成 …

Nginx(十九)nginx配置php

一 了解的基础知识 1) nginx本身不能处理PHP,它只是个web服务器-->只能处理静态请求,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给web服务器,最后再给客户端备注: nginx默认并不支持php等动态语言,nginx是服务器主要用来处理…

NGINX配置PHP网站

NGINX配置PHP网站 NGINX配置PHP网站源码安装NGINX安装PHP修改PHP参数重启PHP修改nginx配置文件重启NGINX测试解决报错问题 NGINX配置PHP网站 源码安装NGINX 脚本一键安装: 安装路径:/opt/nginx 源码路径:/root/ #!/bin/bash useradd -s /sb…

【Nginx和PHP教程(一)】安装、配置及初步使用

1. nginx基本介绍 2. nginx安装和环境配置 3. php基本介绍 4. php的安装和环境配置 5. JavaScript、php、html等的区别 6. ubuntu系统中php的安装和环境配置 1. nginx基本介绍 Nginx(发音为“engine X”)是一款高性能的、轻量级的Web服务器软件&am…

JADE开发求助

求助:JADE创建Agent时遇到这种情况是怎么回事?

Jade入门学习

title: Jade入门学习 date: 2018-05-17 20:09:31 tags: [jade, pug] jade是超高性能的node JavaScript模板引擎,有着非常强大的API和大量杰出的特性。它主要针对node的服务端。由于商标的原因,改为Pug,哈巴狗。Pug有它本身的缺点——可移植性…

Jade linux 位置,jade 6.5 安装教程

简介: MDI Jade是一款XRD分析软件,可以分析X射线衍射,分析出衍射图谱,获得材料的成分、材料内部原子或分子的结构或形态等信息的研究手段。 MDI Jade可以对X射线衍射进行分析,通过分析得到的结果,软件可以判…

jade支持html,Jade !HTML框架

1.电脑要有nodejs npm install jade -g 3.pwd 4.subl .打开编译器 格式为jade的文件 5.jade jadetut.jade 编译 安装 $ npm install jade --global -usage $ jade [options] [dir|file ...] Options: -h, --help output usage information pads pagers set-top boxes 语法 incl…

MDI Jade6.5安装教程-附安装包

安装软件前,请退出360、腾讯电脑管家等安全和杀毒软件。 1.双击setup.exe 2.选择是 3.下一步 4.同意许可协议,下一步 5.下一步(默认不要改),如果需要更改,希望只更改盘符&am…

java模板引擎 jade_jade模板引擎

jade是使用JavaScript实现,可供nodejs使用的高性能模板引擎(性能高不高,有些争议。姑且称之为高性能吧!)。模板引擎有很多,主要使用比较广泛的是jade和ejs,modejs项目默认使用jade作为模板引擎,我也就不多说…

jade java_JADE提升篇

以下如果未特殊声明,都在JADE管理器中运行,然后再Eclipse控制台中查看! JADE行为类 在前面的例子中,Agent所作的工作都定义在了setup方法中,实际上它具有的行为和执行的动作都应该定义在Behavious类中,我们…

Windows系统缺失jade6.dll文件导致程序无法运行解决办法

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下…

JADE平台搭建

首先从下列官方网站下载必要的软件或文件。 JADE官方网站:http://jade.tilab.com/; JAVA环境搭建之JDK官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html eclipse软件下载:https://www.eclipse.org/do…