Nginx 基本配置例子

2023-05-16

个人的小笔记,不好不好

user  root;
worker_processes 8;

error_log  /var/log/nginx/error.log error;

pid        /var/run/nginx.pid;

load_module modules/ngx_http_image_filter_module.so;

events {
    worker_connections  16384;
	multi_accept on;
	use epoll;
}


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;
 
	#image cache
	
	proxy_temp_path /mnt/web/temp/images;
	#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	#==nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_connect_timeout 60;
    #==连接成功后,后端服务器响应时间(代理接收超时)
    proxy_read_timeout 120;
    #==后端服务器数据回传时间(代理发送超时)
    proxy_send_timeout 20;
    #==设置代理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffer_size 32k;
    #==proxy_buffers缓冲区,网页平均在32k以下的设置
    proxy_buffers 4 128k;
    #==高负荷下缓冲大小(proxy_buffers*2)
    proxy_busy_buffers_size 256k;
    #==设定缓存文件夹大小,大于这个值,将从upstream服务器传
    proxy_temp_file_write_size 256k;
	#==1G内存缓冲空间,3天不用删除,最大磁盘缓冲空间2G
    proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:1024m inactive=3d max_size=2g;

    client_max_body_size    1024m;
    client_body_buffer_size  128k;
	#这里默认是4K,改大一点就好了
	client_header_buffer_size 16k;
	
    # map 指令定义一个变量,如果有http_upgrade值,则声明connection_upgrade变量
    # $connection_upgrade变量默认值为upgrade, 如果$http_upgrade=''就赋值close给connection_upgrade
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }


	server {
        listen       80;
        server_name  qr.xxxx.cc;
		
		location /xxxx {
                proxy_connect_timeout   3;    
                proxy_send_timeout      30;    
                proxy_read_timeout      30;
				proxy_set_header Host $host;
				proxy_set_header X-Real-IP $remote_addr;
				proxy_set_header REMOTE-HOST $remote_addr;
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                # 下面两个变量必须在这配置,在server外层配置无效
                # 如果有websocket,需要额外配置请求头,否则请求头无法被后端拿到
                proxy_set_header Upgrade $http_upgrade;
                # $connection_upgrade 变量unknown,需要自定义一个map见上面
                proxy_set_header Connection $connection_upgrade; 

                proxy_pass http://localhost:8080/xxxx;
		}
		
        location / {
                proxy_connect_timeout   3;    
                proxy_send_timeout      30;    
                proxy_read_timeout      30;
				proxy_set_header Host $host;
				proxy_set_header X-Real-IP $remote_addr;
				proxy_set_header REMOTE-HOST $remote_addr;
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://localhost:8080/xxxx/f/streaming-media/play;
		}
	   
	    error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
	
	server {
        listen       80;
        server_name  api.xxx.cc;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		
		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 REMOTE-HOST $remote_addr;
		

		include /etc/nginx/conf.d/api.conf;
		
        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;
        }
    }
	
	server {
        listen       80;
        server_name  admin.xxx.cc;

		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 REMOTE-HOST $remote_addr;
		
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		
		include /etc/nginx/conf.d/admin.conf;
		
		error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
		
    server {
        listen       80;
        server_name  xxx.cn www.xxx.cc xxx.cc www.xxx.cn xxx.com.cn www.xxx.com.cn;

		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 REMOTE-HOST $remote_addr;
		
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		
		include /etc/nginx/conf.d/www.conf;

        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;
        }

     
    }	
	
	server {
        listen       443 ssl;
        server_name  www.xxxx.cc;

        ssl_certificate      /etc/nginx/conf.d/cert.crt;
        ssl_certificate_key  /etc/nginx/conf.d/cert.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
		ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;	
    
        ssl_prefer_server_ciphers  on;
		
		
		include /etc/nginx/conf.d/ssl.conf;
		
	    error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
		
    }
	
    upstream xxxCluster {
         server localhost:8080 weight=13;
         server localhost:18080 backup;
         server xx.xx.xx.xx:8080 weight=7;
         
    }

}

include包含的内容如下:

		location ~* /userfiles/(.*)\.(jpg|jpeg|gif|png)!(\d+)x(\d+)$ {    
            expires 24h;
            root /mnt/web/upload/xxx/;
			#access_log /mnt/file/logs/images_resize_access.log;#日志存放路径  
            set $w $3;
            set $h $4;
            image_filter resize $w $h;
            image_filter_buffer 50M;
			try_files /userfiles/$1.$2 /xxx/userfiles/6.gif;
		}
		
		location ~* /file/(.*)\.(jpg|jpeg|gif|png)!(\d+)x(\d+)$ {    
            expires 24h;
            root /mnt/;
			access_log /mnt/file/logs/images_resize_access.log;#日志存放路径  
            set $w $3;
            set $h $4;
            image_filter resize $w $h;
            image_filter_buffer 50M;
			try_files /file/$1.$2 /xxx/userfiles/6.gif;
		}
		
		location ~* /file/(.*)\.(jpg|jpeg|gif|png)$ {
				  expires 24h;
				  root /mnt/;#指定图片存放路径  
				  access_log /mnt/file/logs/images_access.log;#日志存放路径
				  proxy_store on;  
				  proxy_store_access user:rw group:rw all:rw;  
				  proxy_temp_path     /mnt/;#图片访问路径  
				  proxy_redirect     off;  
				  proxy_set_header    Host $host;  
				  client_max_body_size  50m;  
				  client_body_buffer_size 1280k;  
				  proxy_connect_timeout  900;  
				  proxy_send_timeout   900;  
				  proxy_read_timeout   900;  
				  proxy_buffer_size    40k;  
				  proxy_buffers      40 320k;  
				  proxy_busy_buffers_size 640k;  
				  proxy_temp_file_write_size 640k;
				  if ( !-e $request_filename)  
				  {  
					 #proxy_pass http://127.0.0.1;#文件不存在时重定向 默认80端口  
					 return 404;
				  } 
	    }
		
		location ~ ^/(img|js|css|lib)/  {
          root        /mnt/web/html/;
          access_log  off;
		  #expires     30d;
		}

		location ~ ^/page/.* {
				root /mnt/web/html/$1;
				index index.html index.htm;
		}
		
		location /f {
                rewrite ^/f/(.*)$   http://www.xxxxx.cc/f/$1;
       }
		
		location /xxxx/x {
                proxy_connect_timeout   3;    
                proxy_send_timeout      30;    
                proxy_read_timeout      30;   
				proxy_set_header Host $host;  
				proxy_set_header X-Real-IP $remote_addr;  
				proxy_set_header REMOTE-HOST $remote_addr;  
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;				
                proxy_pass http://xxxxCluster/xxx; 
		}
		
		location /x {    
                proxy_connect_timeout   3;    
                proxy_send_timeout      30;    
                proxy_read_timeout      30;   
				proxy_set_header Host $host;  
				proxy_set_header X-Real-IP $remote_addr;  
				proxy_set_header REMOTE-HOST $remote_addr;  
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;				
                proxy_pass http://xxxxxCluster/xxx; 
		}
		

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx 基本配置例子 的相关文章

  • Linux中学教程(一)

    突然想写点关于linux的东西 xff0c 一是将自己几十年来零碎的知识作以串联 xff0c 二是能为正在学习路上的新手作些指引 而恰好作者的孩子是一位初一的学生 xff0c 我写的这些东西也正是我手把手教授他的 xff0c 现在分享出来并
  • libevent之eventop

    功能 xff1a IO处理模型 架构 xff1a 实现 xff1a event internal h定义eventop结构体 xff0c 在 c文件实例化生成对应的全局对象 xff0c 如在poll c中生成pollops对象 event
  • C++ Lambda表达式的使用方法

    C 43 43 Lambda表达式的简单实用方法如下 xff1a include lt functional gt include lt algorithm gt include lt iostream gt include lt list
  • Visual Code 配置golang开发环境

    1 去微软官网下载安装Visual Code http code visualstudio com Download 安装成功后 xff0c 打开命令行 xff0c 输入go version xff0c 会输出golang 版本 如果没有输
  • linux下调用mysql_query产生SIGSEGV段错误

    xfeff xfeff 程序需要用到MySQL来进行持久化 xff0c 代码在windows测试通过 xff0c 但在Linux调试时 xff0c 产生下面的异常 xff1a Thread 9 34 NodesManagerd 34 rec
  • vim编辑文档误用Ctrl+S导致vim假死

    xfeff xfeff 在linux使用vim编辑源码之后 xff0c 顺手使用了ctrl 43 s xff0c 本以为会保存源码 xff0c 但不料vim却卡住了 xff0c 怎么动都动不了 经过查询 xff0c 才发现ctrl 43 s
  • golang获取命令行参数

    xfeff xfeff 对于C C 43 43 java xff0c 或C 程序 xff0c 我们可以通过入口函数 xff08 main函数 xff09 直接获取命令行参数 xff1a int main int argc char argv
  • linux不指定LD_LIBRARY_PATH运行程序

    在windows中 xff0c 只要将动态库DLL跟可执行程序放在同一个目录 xff0c 程序在运行时 xff0c 就能找到DLL 然而 xff0c 在linux中 xff0c 必须指定动态库的路径 xff0c 程序才能找到动态库 xff0
  • bfs编译失败,编译gflags时缺少config.h

    在编译百度文件系统时 xff0c 编译失败 xff0c 错误如下 xff1a 进入到bfs thirdsrc gflags 2 1 1 include gflags xff0c 发现config h存在 于是跳到gflags 2 1 1 x
  • golang文件读取介绍

    golang提供了多种文件读取方式 xff0c 第一种方式 xff0c 也是最简单的一种方式 xff0c 如下 xff1a bytes err 61 ioutil ReadFile 34 a txt 34 if err 61 nil pan
  • zookeeper分布式部署

    在部署zookeeper之前 xff0c 先准备3台服务器 xff08 服务器已安装配置jdk xff09 xff1a node0 192 168 1 161 xff08 ubuntu16 04 xff09 node1 192 168 1
  • Linux中学教程--第1章 Centos8 开局N件事

    操作系统的学习 xff0c 最重要的是动手去操作 xff0c 而不是去背诵枯燥的概念 命令 通过前面的学习 xff0c 估计大家都已经将centos 8 5安装到自己的虚拟机里了 xff0c 可是第一次登录以后桌面怎么空空的呢 xff1f
  • stdbind剖析

    stl 算法库多数算法只能提供一个参数给绑定函数 xff0c 如 for each 函数 如果想打印 vector 中的每一个元素 xff0c 用 for each 实现方式代码如下 xff1a include lt iostream gt
  • 解决使用libhdfs.so连接hdfs出错问题java.lang.ClassNotFoundException: org.apache.hadoop.fs.F

    xfeff xfeff 出现java lang ClassNotFoundException org apache hadoop fs FileSystem错误的原因 xff1a libhdfs so并没有直接与hadoop与hdfs直接交
  • svn主干删除build.sh重新提交报错“处于冲突状态;请在新增之前标记冲突为已经解决”

    在调试编译脚本过程中 xff0c 由于一开始忘记修改脚本权限 xff0c build sh无法执行 在为build sh增加执行权限后 xff0c 准备重新提交build sh 因此通过windows的svn工具 xff08 有界面 xff
  • Kafka集群配置使用主机名,windows无法访问

    因工作需要 xff0c 在Linux集群下搭建了zookeeper集群和kafka集群 zookeeper集群和kafka集群中的所有配置均使用的真实ip地址 但由于服务节点使用的是动态IP xff0c IP地址经常发生变化 xff0c 每
  • makefile入门

    Makefile入门 1 gcc常用编译命令 gcc最简单的编译命令就是gcc c xff0c 编译当前目录下的所有源文件 现在 xff0c 假设目录say下面存在三个文件say h xff08 定义模块函数 xff09 xff0c say
  • ubuntu16.04禁止后重新开启图形界面自启动

    由于显卡内存较小 xff0c 想释放一部分显卡内存 xff0c 故使用systemctl disable lightdm关闭了图形界面自启动 但却发现调用systemctl enable lightdm xff0c 无法开启图形界面自启动
  • stl容器循环删除元素总结

    程序中有一段代码是关于stl循环删除的内容 xff0c 大体逻辑如下 xff08 实际逻辑要复杂的多 xff0c 不适合用std remove系列函数 xff09 xff1a int main int argc char argv std
  • opencv加载内存中图片

    opencv从磁盘加载一张图片非常简单 xff0c 通过cv imread即可 xff0c 代码如下 xff1a cv Mat src mat 61 cv imread 34 1 jpg 34 读取图片1 jpg xff0c imread会

随机推荐