이 글은 주로 Nginx 기본 구성 파일과 변수에 대한 분석을 소개합니다. 이제 특정 참조 가치가 있습니다. 필요한 친구들이 참조할 수 있습니다.
Nginx 기본 구성 파일 및 변수에 대한 자세한 설명
1. 기본 구성 파일
/etc/nginx/nginx.conf
# nginx运行的用户 user nginx; # nginx进程数,建议设置为等于CPU总核心数。 worker_processes 1; # 全局错误日志文件名称和所在目录,错误日志记录级别[ debug | info | notice | warn | error | crit ] error_log /var/log/nginx/error.log warn; # 进程文件nginx.pid所在目录 pid /var/run/nginx.pid; # 一个nginx进程打开的最多文件描述符数目, # 理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除, # 但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。 # worker_rlimit_nofile 65535; events { # 参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; # epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。 # use epoll; # 单个进程最大连接数(最大连接数 = 连接数 * 进程数) worker_connections 1024; # multi_accept on; } # http服务器配置 http { # 引入http协议的Content-Type与扩展名对应关系的文件 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"'; # HTTP服务器请求日志文件的名称和所在目录、日志记录级别 access_log /var/log/nginx/access.log main; # 开启高效文件传输模式。 # sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为on, # 如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。 # 注意:如果图片显示不正常把这个改成off。 sendfile on; # 防止网络阻塞 # tcp_nopush on; # tcp_nodelay on; # 开启目录列表访问,合适下载服务器,默认关闭。 # autoindex on; # 开启限制IP连接数的时候需要使用 # limit_zone crawler $binary_remote_addr 10m; # 长连接超时时间,单位是秒 keepalive_timeout 65; # gzip模块设置 # 开启gzip压缩输出 # gzip on; # 最小压缩文件大小 # gzip_min_length 1k; # 压缩缓冲区 # gzip_buffers 4 16k; # 压缩版本(默认1.1,前端如果是squid2.5请使用1.0) # gzip_http_version 1.0; # 压缩等级 # gzip_comp_level 2; # 压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。 # gzip_types text/plain application/x-javascript text/css application/xml; # gzip_vary on; # FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。 # fastcgi_connect_timeout 300; # fastcgi_send_timeout 300; # fastcgi_read_timeout 300; # fastcgi_buffer_size 128k; # fastcgi_buffers 8 128k; # fastcgi_busy_buffers_size 128k; # fastcgi_temp_file_write_size 128k; # 允许客户端请求的最大单文件字节数。 # 如果请求大于指定的大小,则NGINX发回HTTP 413(Request Entity too large)错误。 # 如果服务器处理大文件上传,则该指令非常重要。 # client_max_body_size 20m; # 用于请求主体的缓冲区大小。 # 如果主体超过缓冲区大小,则完整主体或其一部分将写入临时文件。 # 如果NGINX配置为使用文件而不是内存缓冲区,则该指令会被忽略。 # 默认情况下,该指令为32位系统设置一个8k缓冲区,为64位系统设置一个16k缓冲区。 # 该指令在NGINX配置的http,server和location区块使用。 # client_body_buffer_size 128k; # upstream abc.com { # upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。 # server 192.168.10.121:80 weight=3; # server 192.168.10.122:80 weight=2; # server 192.168.10.123:80 weight=3; # } # 引入 '/etc/nginx/conf.d/' 目录下以 '.conf' 结尾的文件 include /etc/nginx/conf.d/*.conf; # 虚拟主机的配置 server { # 监听端口 listen 80; # 域名,可以有多个,用空格隔开 server_name localhost; # 默认编码 # charset utf-8; # 日志格式设定 # log_format access '$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/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # 将服务器错误页面重定向到静态页面 /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # 将 PHP 脚本反向代理到监听 127.0.0.1:80 端口的Apache #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # 将 PHP 脚本反向代理到监听127.0.0.1:9000端口的FastCGI服务器 #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; #} # 如果Apache的文档根目录与nginx的相同,拒绝访问.htaccess文件。 #location ~ /\.ht { # deny all; #} # 图片缓存时间设置 # location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { # expires 10d; # } # JS和CSS缓存时间设置 # location ~ .*\.(js|css)?$ { # expires 1h; # } # 对 "/" 启用反向代理 # location / { # proxy_pass http://127.0.0.1:88; # proxy_redirect off; # # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # # 以下是一些反向代理的配置,可选。 # proxy_set_header Host $host; # # nginx跟后端服务器连接超时时间(代理连接超时) # proxy_connect_timeout 90; # # 后端服务器数据回传时间(代理发送超时) # proxy_send_timeout 90; # # 连接成功后,后端服务器响应时间(代理接收超时) # proxy_read_timeout 90; # # 设置代理服务器(nginx)保存用户头信息的缓冲区大小 # proxy_buffer_size 4k; # # proxy_buffers缓冲区,网页平均在32k以下的设置 # proxy_buffers 4 32k; # # 高负荷下缓冲大小(proxy_buffers*2) # proxy_busy_buffers_size 64k; # # 设定缓存文件夹大小,大于这个值,将从upstream服务器传 # proxy_temp_file_write_size 64k; # } } }
2.Nginx 변수
HTTP 요청 변수
arg_parameter name
: 예: $arg_userid 요청 매개변수 useridarg_参数名
:例如,$arg_userid,可以引用到请求参数userid的值http_请求HEADER名
:例如,$http_user_agent,可以引用到请求头信息User-Agent的值sent_http_返回HEADER名
http_Request HEADER name
의 값을 참조할 수 있습니다. 예를 들어 $http_user_agent는 요청 헤더 정보 User-Agentsent_http_return의 값을 참조할 수 있습니다. 헤더 이름
: 응답 클라이언트에 헤더 헤더 정보를 추가할 수 있습니다
내장 변수
Nginx 내장 변수, Nginx 설명서의 syslog에 로깅사용자 정의 변수
🎜🎜🎜🎜PHP를 사용하여 간단한 인터프리터를 작성하는 방법🎜🎜🎜위 내용은 Nginx 기본 구성 파일 및 변수 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

로드 밸런싱은 세션 관리에 영향을 미치지 만 세션 복제, 세션 끈적임 및 중앙 집중식 세션 스토리지로 해결할 수 있습니다. 1. 세션 복제 복사 서버 간의 세션 데이터. 2. 세션 끈은 사용자 요청을 동일한 서버로 안내합니다. 3. 중앙 집중식 세션 스토리지는 Redis와 같은 독립 서버를 사용하여 세션 데이터를 저장하여 데이터 공유를 보장합니다.

SessionLockingIsateChniqueSureDureauser의 SessionLockingSsessionRemainSexclusivetoOneuseratatime.itiscrucialforpreptingdatacorruptionandsecurityBreachesInmulti-userApplications.sessionLockingSogingSompletEdusingserVerver-sidelockingMegynisms, unrasprantlockinj

PHP 세션의 대안에는 쿠키, 토큰 기반 인증, 데이터베이스 기반 세션 및 Redis/Memcached가 포함됩니다. 1. Cookies는 클라이언트에 데이터를 저장하여 세션을 관리합니다. 이는 단순하지만 보안이 적습니다. 2. Token 기반 인증은 토큰을 사용하여 사용자를 확인합니다. 이는 매우 안전하지만 추가 논리가 필요합니다. 3. Database 기반 세션은 데이터베이스에 데이터를 저장하여 확장 성이 좋지만 성능에 영향을 줄 수 있습니다. 4. Redis/Memcached는 분산 캐시를 사용하여 성능 및 확장 성을 향상하지만 추가 일치가 필요합니다.

SessionHijacking은 사용자의 SessionID를 얻음으로써 사용자를 가장하는 공격자를 말합니다. 예방 방법은 다음과 같습니다. 1) HTTPS를 사용한 의사 소통 암호화; 2) SessionID의 출처를 확인; 3) 보안 세션 생성 알고리즘 사용; 4) 정기적으로 SessionID를 업데이트합니다.

이 기사는 PHP에 대해 설명하고, 전체 형식, 웹 개발의 주요 용도, Python 및 Java와의 비교 및 초보자를위한 학습 용이성을 자세히 설명합니다.

PHP는 유효성 검사, 소독 및 보안 데이터베이스 상호 작용을 통해 보안을 보장하면서 $ \ _ post 및 $ \ _를 사용하여 데이터 양식 데이터를 처리합니다.

이 기사는 PHP와 ASP.NET을 비교하여 대규모 웹 응용 프로그램, 성능 차이 및 보안 기능에 대한 적합성에 중점을 둡니다. 둘 다 대규모 프로젝트에서는 실용적이지만 PHP는 오픈 소스 및 플랫폼 독립적이며 ASP.NET,

PHP의 사례 감도는 다양합니다. 함수는 무감각하고 변수와 클래스는 민감합니다. 모범 사례에는 일관된 이름 지정 및 비교를위한 사례 감수 기능 사용이 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
