首页 > 系统相关 >NGINX 配置

NGINX 配置

时间:2024-08-27 10:47:31浏览次数:10  
标签:ssl 配置 NGINX proxy nginx gzip

1. NGINX 基础配置

1.1 NGINX 安装

在 Linux 系统上安装 NGINX 可以使用包管理工具,例如在 Ubuntu 上:

sudo apt update
sudo apt install nginx

安装完成后,启动 NGINX 服务:

sudo systemctl start nginx

1.2 NGINX 基本配置文件

NGINX 的主配置文件通常位于 /etc/nginx/nginx.conf。以下是一个简化的 NGINX 配置示例:

worker_processes  1;

events {
    worker_connections  1024;
}

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

    sendfile        on;
    keepalive_timeout  65;

    client_max_body_size 20M;
    client_body_buffer_size 128k;

    gzip  on;
    gzip_http_version 1.1;
    gzip_vary on;  
    gzip_comp_level 6;  
    gzip_proxied any;  
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
  
    server {
        listen       80;

        error_page   500 502 503 504  /50x.html;    

        location / {
            root   html;
            index  index.html index.htm;
        }
    }
}

1.3 常用配置项说明

  • worker_processes: 配置 NGINX 处理请求的工作进程数。
  • worker_connections: 每个工作进程可以处理的最大连接数。
  • client_max_body_size: 限制客户端请求体的最大大小,防止过大的请求导致服务器崩溃。
  • gzip: 启用 Gzip 压缩,提高页面加载速度。

2. SSL 配置

2.1 配置 HTTPS

为了使 NGINX 支持 HTTPS,需要配置 SSL 证书和密钥。以下是一个 HTTPS 配置示例:

server {
    listen 443 ssl;
    ssl_certificate      /etc/nginx/certs/ssl_certificate.crt;
    ssl_certificate_key  /etc/nginx/certs/ssl_certificate.key;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
        root   html;
        index  index.html index.htm;
    }
}

2.2 SSL 配置说明

  • ssl_certificate: 指定 SSL 证书文件路径。
  • ssl_certificate_key: 指定 SSL 证书密钥文件路径。
  • ssl_ciphers: 配置使用的加密算法套件。
  • ssl_protocols: 指定支持的 SSL/TLS 协议版本。

3. 反向代理配置

NGINX 常用于反向代理,将客户端请求转发到后端服务器。以下是一个简单的反向代理配置:

server {
    listen 80;

    location / {
        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_pass http://backend_server:8080;
    }
}

3.1 反向代理配置说明

  • proxy_set_header: 设置代理请求头信息,传递客户端的真实 IP 地址和主机信息。
  • proxy_pass: 指定后端服务器的地址和端口,转发请求。

4. NGINX 与 Docker 配合使用

4.1 使用 Docker Compose 启动 NGINX

以下是一个使用 Docker Compose 启动 NGINX 容器的配置示例:

version: "3.6"

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "8880:80"     # HTTP
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    restart: always
    logging:
      driver: json-file
      options:
        max-size: 10m
        max-file: '5'

4.2 配置说明

  • ports: 将容器内的 80 端口映射到主机的 8880 端口。
  • volumes: 将本地的 nginx.conf 文件挂载到容器中的 /etc/nginx/nginx.conf,使容器使用自定义配置。
  • restart: 设置容器自动重启策略。
  • logging: 配置容器日志文件的大小和数量,防止日志占用过多磁盘空间。

4.3 启动 NGINX 容器

docker-compose.yml 文件所在目录,运行以下命令启动 NGINX 容器:

docker-compose up -d

容器启动后,可以通过访问 http://localhost:8880 查看 NGINX 是否正常运行。


标签:ssl,配置,NGINX,proxy,nginx,gzip
From: https://www.cnblogs.com/daikaiqiang/p/18382221

相关文章

  • 若依平台增加对第三方ip请求配置
    1.使用的是vue3若依管理平台,部署到测试环境后,我的测试环境ip:http://42.194.232.89:8569/在页面中,需要请求另一个ip:http://134.175.80.213:8505/本地代理是生效的,部署到测试环境请求报错405,被拦截了,如图 这时候要修改nginx配置:对这个ip增加一个loaction:例如加一个路径/con......
  • 查看安装vs的相关配置
     "C:\ProgramFiles(x86)\MicrosoftVisualStudio\Installer\vswhere.exe"-all instanceId:50011384installDate:2023/12/417:15:19installationName:VisualStudio/17.10.0+34916.146installationPath:C:\ProgramFiles\MicrosoftVisualStud......
  • 使用 updateAppConfig 更新 Nuxt 应用配置
    title:使用updateAppConfig更新Nuxt应用配置date:2024/8/27updated:2024/8/27author:cmdragonexcerpt:通过使用updateAppConfig,你可以轻松地在应用运行时更新配置,而无需重新启动应用。这对于需要在运行时调整设置的应用场景非常有用。categories:前端开发ta......
  • ThinkPHP 6 + PHP7.4.3nts +nginx 使用mysql和oracle数据库
    ThinkPHP6+PHP7.4.3nts+nginx使用mysql和oracle数据库.前言业务需求,之前使用的php7.3.4nts,mysql自己写的代码,需要对接第三方系统,第三方使用的oracle数据库。之前也是各种的网查,稀里糊涂的成功了。上周五又需要对接,这次用的是php7.4.3nts,各种试了两三天不行,昨晚就突然可以......
  • 手把手教你—搭建Vue3企业级项目规范+基础封装配置
    前言如何搭建一个简易脚手架。核心需求是输入项目命令,clone准备好的项目模板,拉到本地后,装一下依赖,就可以直接开发了。不用每次都花大量时间,去搭建项目规范和做必要的封装配置。经过简单寻找后,发现没有符合自己预期的。从0到1搭建一个具备完善规范的Vue3开发模板✨,并手把手带大......
  • neovim 安装插件,并配置vimconig
    neovim安装插件,并配置vimconig1.neovim安装参考这里2.插件包管理器安装Vundle是vim的一个插件管理器,同时它本身也是vim的一个插件。插件管理器用于方便、快速的安装、删除、Vim更新插件。vimVundle插件官方地址:https://github.com/VundleVim/Vundle.vim下载Vundle插件......
  • 折腾 Quickwit,Rust 编写的分布式搜索引擎-官方配置详解
    Nodeconfiguration(节点配置)节点配置允许您为集群中的各个节点自定义和优化设置。它被分为几个部分:常规配置设置:共享的顶级属性Storage(存储)设置:在storage部分定义https://quickwit.io/docs/configuration/node-config#storage-configurationMetastore(元存储)设置:在......
  • Nuxt3 全局变量接口前缀全局配置,全局方法,全局状态管理
    接口前缀全局配置,全局变量1.像api前缀这类的全局变量一般配置在nuxt.config.ts文件中。如下:nuxt.config.ts可以在public下定义全局变量,且public下的变量可以在客户端和服务端使用在其他任意vue或者js、ts文件中,可通过以下方式获取变量const{public:{apiBase}}=u......
  • 主机windows系统,虚拟机安装ubuntu无线网络连接配置
    主机系统:windows系统虚拟机版本:VMware10.0.1build-1379776ubuntu系统版本:ubuntu16.04LTSlinux系统配置:按照顺序点击下图中的1位置,会出现一个下拉列表然后点击下拉列表中2的位置,编辑连接然后出现下图中所示界面选中3所示位置,然后点击4“编辑”依次配置如下箭头所......
  • Tomcat的配置文件中有哪些关键的配置项,它们分别有什么作用?
    Tomcat的配置文件主要包括server.xml和web.xml,它们位于Tomcat安装目录下的conf文件夹中。今天的内容重点介绍server.xml文件的配置,V哥会结合一些业务场景来介绍,希望可以帮助到你,以下是一些关键的配置项及其作用:server.xml中的配置项:<Server>:根元素,定义了Tomcat服务器的配......