>  기사  >  운영 및 유지보수  >  nginx는 웹 컨테이너인가요?

nginx는 웹 컨테이너인가요?

(*-*)浩
(*-*)浩원래의
2019-07-15 10:16:545509검색

웹 컨테이너는 웹 애플리케이션을 관리하고 배포하는 데 사용되는 웹 서버(Python의 웹 컨테이너에는 web.py 등이 포함됨)라고 더 정확하게 불러야 합니다.

nginx는 웹 컨테이너인가요?

그래서 Nginx는 공식적으로 웹 컨테이너입니다. /역방향 프록시 및 이메일(IMAP/POP3) 프록시 서버, BSD와 유사한 라이센스로 출시됨.

더 적은 메모리를 차지하고 강력한 동시성 기능을 제공하는 것이 특징입니다. 실제로 nginx의 동시성 기능은 동일한 유형의 웹 서버 중에서 더 나은 성능을 발휘합니다.

중국 본토의 nginx 웹사이트 사용자에는 Baidu, JD.com, Sina, NetEase, Tencent, Taobao 등이 있습니다.

다음은 정적 페이지를 처리하는 웹 컨테이너 역할을 하는 Nginx의 예입니다.

Linux 커널 매개변수 설정, nginx 매개변수 설정, php-fpm 설정, nginx 소스 코드 수정 및 재컴파일 등 다른 사람들의 튜닝 경험을 많이 읽었습니다.

먼저, nginx 매개변수 설정

user www www;  #worker进程的用户
worker_processes 8; #一般和CPU核数一致
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000
01000000;
#error_log /www/log/nginx_error.log crit; #为了得到更好的IO我是关闭日志的
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 204800;
events
{
use epoll;
worker_connections 204800;
}
http
{
include mime.types;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 2k;
large_client_header_buffers 4 4k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
keys_zone=TEST:10m
inactive=5m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;
fastcgi_busy_buffers_size 8k;
fastcgi_temp_file_write_size 8k;
fastcgi_cache TEST;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;
open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server
{
listen 8080;
server_name localhost;
index index.php index.htm;
root /www/html/;
location /status
{
stub_status on;
}
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
{
expires 30d;
}
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 /www/log/access.log access;
}
}
정적 리소스에 액세스할 때, 작업자_프로세스 및 작업자_연결이 올바르게 설정되었다는 전제 하에 가장 큰 성능 향상은

open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
#🎜 🎜#캐시 파일 리소스입니다. 폭발적인 성능 증가를 테스트하기 위해 ab를 사용했습니다. 원래는 1,000개의 요청을 동시에 보내는 데 10초가 걸렸는데, 추가하고 나니 바로 0.4가 되었습니다. 처리량 속도가 수십K에서 1M로 변경되었습니다. 단일 코어 1G 가상 머신 구성이 있습니다. . .

그럼 PHP 파일에 액세스하는 것은 어떨까요?

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
keys_zone=TEST:10m
inactive=5m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;
fastcgi_busy_buffers_size 8k;
fastcgi_temp_file_write_size 8k;
fastcgi_cache TEST;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;
효율성을 크게 향상시킬 수 있습니다

nginx 효율성을 향상시키는 가장 효과적인 방법은 다양한 캐시를 활성화하는 것입니다!

더 많은 Nginx 관련 기술 기사를 보려면

Nginx 사용 튜토리얼

열을 방문하여 알아보세요!

위 내용은 nginx는 웹 컨테이너인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.