Nginx配置指南

正反向代理参考

基本配置 nginx.conf

user  nginx nginx;                  		#nginx 进程运行的用户及用户组   
worker_processes  8;			    		#进程个数(推荐和cpu核数一致)		
pid        /run/nginx.pid;					#pid文件路径

events {							
    accept_mutex on;   						#设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;   						#设置一个进程是否同时接受多个网络连接,默认为off
    use epoll;         						#事件驱动模型 select|poll|kqueue|epoll
    worker_connections  1024;   			#最大连接数,默认为512
}

http {
    include       mime.types;				#文件扩展名与文件类型映射表
    default_type  application/octet-stream;	#默认文件类型,默认为text/plain
    client_max_body_size 50m;				#上传文件时大小限制,默认1m
    server_tokens off;						#隐藏nginx版本号
    sendfile      on;						#允许sendfile高效传输模式传输文件,默认为off
    tcp_nopush    on;						#将多个小包组成一个大包一起发送
    tcp_nodelay   on;                       #不等

    gzip on;                      			#开启gzip压缩
    gzip_min_length 1k;						#低于1kb的资源不压缩
    gzip_buffers 4 16k;           			#缓存buffer
    gzip_comp_level 5;            			#压缩比
    gzip_proxied any;             			#无论header头部信息 都压缩
    gzip_vary on;                 			#代理时header头部添加Accept-Encoding
    gzip_types text/plain application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;   #压缩的文件类型    
    gzip_disable "MSIE [1-6]\.";  			#禁用IE6 gzip

    #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    
    include hosts/*.conf;         			#加载用户配置文件
}

用户配置文件 *.conf

server {
    listen 81;																	#监听端口
    server_name  localhost;														#域名	
    root   /home/dev/al-api/public;												#项目根目录
    index  index.html index.htm index.php server.php;							#入口文件名称
    
    # https配置
    #listen 443 ssl;
    #ssl_certificate /usr/local/nginx/cert/***.pem;
    #ssl_certificate_key /usr/local/nginx/cert/***.key;
    #ssl_session_timeout 5m;
    #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;
    
    access_log /data/logs/nginx/***/access.log;									#请求日志路径
    error_log   /data/logs/nginx/common/error.log;								#错误日志路径

    location / {																#所有请求转发php
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {															# php处理												
        include cors.conf;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|ttf|woff|ico)$	  	# 静态资源文件
    {
         #root /data/dev/al-api/public/doc/preview;
         expires      1d;
    }
}

location (todo)

location / {}                   	# 匹配所有
location = / {}                   	# 只匹配 http://domain.com/
location ~ /abc {}                 # 只匹配 http://domain.com/abc

proxy

一般配置:
location /test/ {
    proxy_set_header test test;			 			# 自定义header:test
    proxy_set_header Host $host;			
    proxy_set_header Connection "";
    proxy_set_header X-Real-IP $remote_addr;		
    proxy_pass http://domain:8080;
}

proxy路径问题

1. 域名转发

简单来说就是proxy_pass只配置域名, 转发路径 = 真实请求路径

例如: http://localhost/test/xxx  ->  http://domain:8080/test/xxx

location /test/ {					
   	proxy_pass http://domain:8080;		 # 不带路径(注意:'/'也是路径)	
}

最终请求地址: http://domain:8080 + /test/xxx   = http://domain:8080/test/xxx

2. 域名 + 路径转发

简单来说就是proxy_pass配置域名 + 路径, 转发路径 = proxy_pass + (真实请求路径 - 匹配规则)

例如1: http://localhost/test/xxx  ->  http://domain:8080/xxx

location /test/ {
   	proxy_pass http://localhost:8080/;
}

最终请求路径: http://domain:8080/ + (/test/xxx - /test/)  = http://domain:8080/xxx




例如2: http://localhost/test/xxx  ->  http://domain:8080/demo/xxx

location /test/ {
   	proxy_pass http://localhost:8080/demo/;
}

最终请求路径: http://domain:8080/demo/ + (/test/xxx - /test/)  = http://domain:8080/demo/xxx

rewrite

Rewrite

当前,全球经济格局深刻调整,数字化浪潮席卷各行各业,智能物流作为现代物流发展的必然趋势和关键支撑,正迎来前所未有的发展机遇。以人工智能、物联网、大数据、云计算、区块链等前沿信息技术的快速迭代与深度融合为驱动,智能物流不再是传统物流的简单技术叠加,而是正在经历一场从自动化向智能化、从被动响应向主动预测、从信息孤岛向全面互联的深刻变革。展望2025年,智能物流系统将不再局限于提升效率、降低成本的基本目标,而是要构建一个感知更全面、决策更精准、执行更高效、协同更顺畅的智慧运行体系。这要求我们必须超越传统思维定式,以系统化、前瞻性的视角,全面规划和实施智能物流系统的建设。本实施方案正是基于对行业发展趋势的深刻洞察和对未来需求的精准把握而制定。我们的核心目标在于:通过构建一个集成了先进感知技术、大数据分析引擎、智能决策算法和高效协同平台的综合智能物流系统,实现物流全链路的可视化、透明化和智能化管理。这不仅是技术层面的革新,更是管理模式和服务能力的全面提升。本方案旨在明确系统建设的战略方向、关键任务、技术路径和实施步骤,确保通过系统化部署,有效应对日益复杂的供应链环境,提升整体物流韧性,优化资源配置效率,降低运营成本,并最终为客户创造更卓越的价值体验。我们致力于通过本方案的实施,引领智能物流迈向更高水平,为构建现代化经济体系、推动高质量发展提供强有力的物流保障。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值