Linux Nginx
15456 단어 linux nginx
nginx
1: Nginx 가 뭐 예요?
많은 사람들 이 아파 치 를 잘 알 고 있 습 니 다. Nginx 는 Apahe 와 비슷 하고 모두 웹 용기 에 속 하 며 고성능 HTTP 와 역방향 프 록 시 소프트웨어 이기 도 합 니 다.
2: 왜 Nginx 를 선 택 했 습 니까?
Nginx 와 Apache 의 가장 큰 차이 점:
Nginx 는 커 널 과 모듈 로 구성 되 어 있 으 며 커 널 디자인 이 매우 작고 간결 하 며 완 성 된 작업 도 매우 간단 합 니 다. 설정 파일 을 통 해 클 라 이언 트 요청 을 하나의 location block 에 표시 한 다음 에 이 location 의 설정 을 통 해 각 명령 을 통 해 서로 다른 모듈 을 호출 하여 해당 하 는 작업 을 완성 합 니 다. Nginx 의 모듈 부분: Nginx 의 모듈 은 구조 적 으로 나 뉜 다. 핵심 모듈 은 http 모듈, 이벤트 모듈, mail 모듈 을 포함 합 니 다. 기본 모듈 에는 http Access 모듈 Http FastCGI 모듈 Http Proxy 모델 과 HTTP Rewrite 모듈 이 포함 되 어 있 습 니 다. 제3자 모듈: Http upstream request 모듈, Notice 모듈 과 Http Access key 모듈 상기 모듈 은 기능 에서 3 개의 큰 유형 으로 나 뉜 다. (1) Handerls (처리 모듈) 와 같은 모듈 은 직접 요청 하고 출력 내용 과 Haders 정보 조작 을 수정 합 니 다. Handerls 프로세서 모듈 은 하나 뿐 입 니 다. (2) Filters (필터 모듈) 는 주로 다른 처리 모듈 의 출력 내용 과 연수 수정 을 대상 으로 하고 마지막 으로 Nginx 에서 출력 합 니 다. (3) Proxies (프 록 시 모듈), 이 모듈 Nginx 의 HTTP upstream 과 같은 모듈 은 백 엔 드 서 비 스 를 실현 합 니 다. 예 를 들 어 FastCGI 의 정보 교환, 프 록 시 서비스 와 부하 균형 을 실현 합 니 다. HTTP 요청 | | \|/ Nginx 커 널 | | Handlers 처리 모듈 선택 | | Handlers 모듈 을 처리 합 니 다. Filters (필터 모듈) 에 맡 깁 니 다. > HTTP 요청 에 응답 합 니 다. Nginx 는 단일 프로 세 스 와 더 블 프로 세 스 두 가지 로 나 뉘 며, Nginx 기본 작업 방식 은 단일 프로 세 스 작업 입 니 다.
5. Nginx 의 설치 와 설정
(1) 의존 라 이브 러 리 설치
# yum -y install gcc openssl-devel zlib-devel
pcre-delvel pcre-8.01.tar.gz
# cd /soft/
# tar xf pcre-8.01.tar.gz -C tmp/
# cd tmp/pcre-8.01/
#./configure && make && make install
libmd5 libmd5-0.8.2b.tar.gz
# cd /soft/
#tar xf libmd5-0.8.2b.tar.gz -C tmp/
(2) Nginx
# useradd user_00 -g users -s /sbin/nologin
# cd /soft/
# tar -xvf nginx-0.8.55.tar.gz -C tmp/
# cd tmp/nginx-0.8.55/
./configure --user=user_00 --group=users --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-md5=/soft/md5/ --with-sha1=auto/lib/sha1 --with-pcre=/soft/pcre-8.01/ --without-select_module --without-poll_module --without-http_ssi_module --without-http_userid_module --without-http_geo_module --without-http_map_module --without-http_memcached_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --prefix=/usr/local/services/nginx-0.8.55
# make >/dev/null && make install >/dev/null
:
--with-http_realip_module
IP , NGINX 。
-with-http_stub_status_module
nginx ,
--with-http_gzip_static_module
Gzip “.gz” , 。
--with-md5=/soft/md5/
md5
--with-sha1=auto/lib/sha1
sha1
--with-pcre=/soft/pcre-8.01
PCRE
--without-select_module
。 。 -select_module - select_module
--without-poll_module
poll
--without-http_ssi_module
ngx_http_ssi_module , (ssi) .
--without-http_userid_module
ngx_http_userid_module
--without-http_geo_module
IP ngx_http_geoip_module , MaxMindGeoIP , 0.7.63 0.8.6 。 , IP ,
。
--without-http_map_module
ngx_http_map_module
--without-http_memcached_module
ngx_http_memcached_module
--without-mail_pop3_module
ngx_mail_pop3_module
--without-mail_imap_module
ngx_mail_imap_module
--without-mail_smtp_module
ngx_mail_smtp_module
4.4 메 인 프로필 편집
:/usr/local/nginx/conf/nginx.conf
1. Nginx 4
2. main( )
3. server( )
4. upstream( )
5. localtion(URL )
server main location server
upstream .
#vim /usr/local/nginx/conf/nginx.conf
#================================== #========================
user user_00 users; # , Nginx Worker , nobody
worker_processes 8; # , 10M~12M , CPU 。
error_log logs/error.log; #
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid; #: ID .
#Specifies the value for maximum file descriptors that can be opened by this process.
#events Nginx
events {
use epoll; # epoll , Linux,Unix kqueue,select
worker_connections 100000; # Ningx 。 1024, 。
}
worker_rlimit_nofile 100000; # 10
#================================== 、HTTP ========================
http {
include mime.types; #
default_type application/octet-stream; # HTTP ,
server_tokens off; # nginx
#
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# hash 128K
server_names_hash_bucket_size 128;
client_header_buffer_size 32k; # , 1k
large_client_header_buffers 4 32k; # nginx client_header_buffer_size buffer header
client_max_body_size 8m; # nginx
#sendfile nginx sendfile (zero copy ) ,
# , on。
# IO , off, IO , uptime。
sendfile on;
tcp_nopush on; # socke TCP_CORK , sendfile
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 60; #keepalive 。 ,
#=================== ============
fastcgi_connect_timeout 300; # FastCGI 。
fastcgi_send_timeout 300; # FastCGI , FastCGI 。
fastcgi_read_timeout 300; # FastCGI , FastCGI 。
fastcgi_buffer_size 254k; # FastCGI
fastcgi_buffers 16 256k; # FastCGI 。
fastcgi_busy_buffers_size 512k; # , fastcgi_buffers 。
fastcgi_temp_file_write_size 512k; # fastcgi_temp_path , fastcgi_buffers 。
gzip on; # gzip (on/off)
gzip_min_length 1k; # , header content-length
gzip_buffers 4 16k; # gzip
gzip_http_version 1.0; # http
gzip_comp_level 2; #gzip ,1
# mime , ,”text/html”
gzip_types text/plain application/x-javascript text/css application/xml text/javascript;
gzip_vary on; # http , vary ,
charset utf-8; # utf-8
access_log off; #
log_not_found off; #
error_page 400 403 405 408 /40x.html; #
error_page 500 502 503 504 /50x.html; #
#===================Server ============
server {
listen 80 default; # 80
server_name _;
return 444;
}
#=================== ===========
include vhost/vhost.www.fanhougame.com;
}
Server :
server {
listen 80 ; #
#
server_name 10.0.0.201;
#
root /data/www/oa.com/www.fanhougame.com ;
# localtion
location / {
index index.php index.html index.htm;
if (!-e $request_filename) {
return 444;
}
}
#:
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
# localtion , php sock
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi-5313-web.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
fastcgi_ignore_client_abort on;
}
# max 10 , 30d( )
location ~ \.(swf|js|css|xml|gif|jpg|jpeg|png|bmp)$ {
error_log off;
access_log off;
#expires 30d;
expires max;
}
}
4.5. 시작 과 부 드 러 운 재 부팅# cd /usr/local/services/nginx-0.8.55/sbin/
# ./nginx –t
# ./nginx nginx
# ./nginx -s reload
####################################################################################
6. Nginx 상용 설정 인 스 턴 스
6.1. 부하 균형 설정 인 스 턴 스 환경:
Master:10.0.0.201 Master Web 10.0.0.201:81 Slave1 Web 10.0.0.202:80 Slave2 Web 10.0.0.203:80
6.2 、 201 에서 메 인 프로필 nginx. conf 편집
# vim /usr/local/service/nginx/conf/nginx.conf
6.3. 201 에서 가상 호스트 설정 파일 vhost. aatest. com 을 편집 합 니 다.
# vim /usr/local/service/nginx/conf/vhost/vhost.aatest.com
6.4 、 201 에서 부하 가 모두 설정 파일 을 편집 합 니 다.
# vim /usr/local/service/nginx/conf/vhost/vhost.fuzai
upstream www.aatest.com {
server 10.0.0.201:81 weight=1 max_fails=3 fail_timeout=20s;
server 10.0.0.202:80 weight=1 max_fails=3 fail_timeout=20s;
server 10.0.0.203:80 weight=1 max_fails=3 fail_timeout=20s;
}
server{
listen 80;
server_name www.aatest.com;
location / {
proxy_pass http://www.aatest.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
6.5 、 202 와 203 에서 다음 과 같은 메 인 프로필 을 편집 합 니 다.
# vim /usr/local/service/nginx/conf/nginx.conf
6.5. 202 와 203 에서 다음 과 같은 가상 호스트 설정 파일 을 편집 합 니 다.
# vim /usr/local/service/nginx/conf/www.aatest.com
server {
listen 80 ; #
#
server_name www.aatest.com;
#
root /opt/zeng ;
# localtion
location / {
index index.php index.html index.htm;
if (!-e $request_filename) {
return 444;
}
}
#:
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
# localtion , php sock
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi-5313-web.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
fastcgi_ignore_client_abort on;
}
# max 10 , 30d( )
location ~ \.(swf|js|css|xml|gif|jpg|jpeg|png|bmp)$ {
error_log off;
access_log off;
#expires 30d;
expires max;
}
}
[size = small] [color = blue] 는 다음 과 같이 요약 합 니 다. 단기 WEB 설정 1, 설치 라 이브 러 리 2, Nginx 3 설치, Nginx. conf 메 인 파일 편집 (가상 설정 파일 편집 후 주의 하 십시오. 메 인 파일 연결 (include file > 4, 가상 컴퓨터 설정 파일 편집 5, 서비스 시작 6, 사이트 에 대응 하 는 디 렉 터 리 를 만 들 고 정적 html 페이지 를 작성 하 십시오. echo "test" > index. html 부하 균형 설정 환경: 10.0.0.201 부하 균형 서버: 대외 80 10.0.0.201 가상 호스트 (WEB) 81
[/color][/size]
10.0.32.111 포트 번호: 80
10.0.0.131 포트 번호: 80
단계 1, 201 32.111 131 서버 에서 모두 Nginx. conf 절 차 를 편집 합 니 다. 2, 201 111 131 에서 가상 컴퓨터 프로필 을 편집 합 니 다. 3. 201 에서 부하 균형 적 인 프로필 을 편집 합 니 다. 4. 서 비 스 를 시작 합 니 다.
연습 문 제 는 다음 과 같다. 기업 은 3 개의 웹 사 이 트 를 만들어 야 한다. www. gongda 1. com www. gongda 2. com www. gongda 3. com 은 Nginx 를 설치 하고 3 개의 가상 호스트 를 열 어 브 라 우 저 에 입력 해 야 한다.http://www.gongda1.com 돌아 오 는 내용: this gongda 1http://www.gongda2.com 돌아 오 는 내용: this gongda 2http://www.gongda3.com 돌아 오 는 내용: this gongda 3