문제 발생:
모바일 사용자가 웹 서버 www.osyunwei.com에 액세스하는 속도가 매우 느립니다. 해결 방법:
1 모바일 컴퓨터실에 nginx 역방향 프록시 서버를 배치합니다2. 도메인 이름 dns, all 모바일 사용자가 www.osyunwei.com을 방문하면 nginx 역방향 프록시 서버
3로 확인됩니다. nginx 역방향 프록시 서버와 웹 서버
사이에 전용 회선 연결이 사용됩니다. 지침:
1. 웹 서버라인: Telecom
ip: 192.168 .21.129
도메인 이름: www.osyunwei.com
2.nginx 역방향 프록시 서버
라인: mobile
시스템: centos 6.2
ip: 192.168.21.164
vi /etc/hosts # 편집하여 파일 끝에 다음 줄을 추가하세요
192.168 .21.129 www.osyunwei.com
3. Client
Line: Mobile
System: windows 7
ip:192.168.21.130
c:windowssystem32driversetchosts #메모장으로 열고 추가 파일 끝에 다음 줄
192.168.21.164 www.osyunwei .com
##################다음 작업은 nginx 리버스에서 구성됩니다. 프록시 서버############### #### status) server { location / { location ~ /purge(/.*) #用于清除缓存 1、浏览图片文件:http://www.osyunwei.com/images/nopic.gif 2、清除这个文件缓存:http://www.osyunwei.com/purge/images/nopic.gif 提示:successful purge,缓存文件清除成功,如果这个文件没有被缓存过,则提示:404 not found 备注: 至此,使用nginx反向代理和proxy_cache缓存功能配置cdn服务器教程结束。 附件: 1、nginx配置文件/usr/local/nginx/conf/nginx.conf 2、被代理服务器列表文件/usr/local/nginx/conf/mysvrhost.conf 3、proxy_cache参数配置文件/usr/local/nginx/conf/proxy.conf 4、虚拟主机配置文件/usr/local/nginx/conf/vhost/www.osyunwei.com.conf 扩展阅读:
1. selinux를 끄세요
vi /etc/selinux/config
#selinux=enforcing #코멘트아웃
#selinuxtype=targeted #코멘트아웃
selinux=disabled #추가
:wq 저장하고 닫습니다.
shutdown -r 지금 시스템을 다시 시작하세요
2. 방화벽 포트 80을 엽니다
vi /etc/sysconfig/iptables
다음 내용을 추가하세요
-a input -m state --state new -m tcp -p tcp --dport 80 -j accept
/etc/init.d/iptables restart # 구성을 적용하려면 방화벽을 다시 시작하세요
3. 컴파일 도구를 설치하세요
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre -devel gd kernel keyutils patch perl
4. 시스템 계약
소프트웨어 소스 코드 패키지 저장 위치: /usr/local/src
소스 코드 패키지 편집 및 설치 위치: /usr/local/소프트웨어 이름
5.
cd /usr/local/ src # 디렉토리 입력
(1), nginx 다운로드 (현재 안정 버전)
wget http://nginx.org/download/nginx-1.0.12.tar.gz
(2) , pcre 다운로드(nginx pseudo-static 지원)
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
(2), ngx_cache_purge 다운로드(지우기 지정된 URL 캐시)
wget http://labs.frickle.com/files/ngx_cache_purge-1.5.tar.gz
6. pcre
cd /usr/local/src
mkdir /usr/local/pcre #를 설치하세요. 설치 디렉터리 만들기
tar zxvf pcre-8.21.tar .gz
cd pcre-8.21
./configure --prefix=/usr/local/pcre #Configure
make
make install
7, install nginx
groupadd www #www 그룹 추가
useradd -g www www -s /bin/false # nginx 실행 계정 www를 만들고 www 그룹에 가입하세요. www 사용자는 시스템에 직접 로그인할 수 없습니다
cd /usr/local/src
tar zxvf ngx_cache_purge-1.5.tar.gz
tar zxvf nginx-1.0.12.tar.gz
cd nginx-1.0.12
./configure --prefix=/usr/local/nginx --user=www --group= www --with-http_stub_status_module --with-openssl=/usr/ -- with-pcre=/usr/local/src/pcre-8.21 --add-module=../ngx_cache_purge-1.5
참고: --with- pcre=/usr/local/src/pcre-8.21은 소스 패키지를 가리킵니다. 설치 경로가 아닌 압축 해제 경로입니다. 그렇지 않으면 오류가 보고됩니다
make #Compile
make install #Install
/usr/local/nginx/sbin /nginx # nginx 시작
chown www.www -r /usr/local/nginx/ html # 디렉터리 소유자 설정
chmod 700 -r /usr/local/nginx/html # 디렉터리 권한 설정
vi /etc/rc.d /init.d/nginx # nginx를 시작하도록 설정하고 시작 파일을 편집한 후 다음 콘텐츠를 추가하세요
============================ ======================= =======
#!/bin/bash
# nginx http 서버용 nginx 시작 스크립트
# it 은 v.0.0.2 버전입니다.
# chkconfig: - 85 15
# 설명: nginx는 고성능 웹 및 프록시 서버입니다.
# 많은 기능이 있지만 모든 사람을 위한 것은 아닙니다.
# 프로세스 이름: nginx
# pidfile: /var/run/nginx.pid
# 구성: /usr/local/nginx/ conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx /conf/nginx.conf
nginx_pid=/usr/local/nginx/logs/nginx.pid
retval =0
prog="nginx"
# 소스 함수 라이브러리.
. 기능
# 소스 네트워킹 구성.
. /etc/sysconfig/network
# 네트워킹이 작동 중인지 확인하세요.
[ ${networking} = "no" ] && exit 0
[ -x $nginxd ] || nginx 데몬 기능을 시작합니다.
start() {
if [ -e $nginx_pid ];then
echo " nginx가 이미 실행 중입니다...."
exit 1
fi
echo -n $"starting $prog: "
daemon $ nginxd -c ${nginx_config}
retval=$?
echo
[ $retval = 0 ] && touch /var/lock/subsys/nginx
return $retval
}
# nginx 데몬 기능을 중지합니다.
stop() {
echo -n $"stopping $prog: "
killproc $nginxd
retval=$?
echo
[ $retval = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx .pid
}
reload() {
echo -n $"reloading $prog: "
#kill -hup `cat ${nginx_pid}`
killproc $nginxd -hup
retval=$?
echo
}
# 참조 우리가 어떻게 불렸는지.
case "$1" in
start)
start
stop)
stop
reload)
reload
restart)
stop
start
;;
status $prog
retval=$?
*)
echo $"사용법: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $retval
== ================================================= ===
:wq! 저장하고 종료
chmod 775 /etc/rc.d/init.d/nginx #파일 실행 권한 부여
chkconfig nginx on #시작 설정
/etc/rc.d/init.d/nginx restart
service nginx restart
8. nginx 구성
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.confbak #nginx 구성 파일 백업
(1), 설정 up nginx 계정 실행
vi /usr/local/nginx/conf/nginx.conf #편집
사용자 찾기 none;
user www www로 변경 # 첫 번째 줄에서
(2), nginx 빈 호스트 헤더 금지
vi / usr/ local/nginx/conf/nginx.conf #Edit
서버를 찾아 위 줄에 다음 내용을 추가하세요:
###################### #### ###
server {
listen 80 default;
server_name _;
location / {
root html;
return 404;
}
location ~ /.ht {
deny all;
}
}
# #### #####################
/etc/rc.d/init.d/nginx restart #nginx를 다시 시작
이렇게 설정한 후 , 호스트 헤더는 비어 있습니다. 액세스는 nginx404 오류 페이지로 직접 이동합니다.
(3) nginx 가상 호스트 포함 파일 추가
cd /usr/local/nginx/conf/ # nginx 설치 디렉터리 입력
mkdir vhost # 가상 디렉터리 생성
vi /usr/local/nginx/conf/nginx.conf #편집
이전 단계에서 추가된 코드를 찾아 마지막에 다음 내용을 추가합니다.
include vhost/*.conf;
예:
################ ###### ######
server {
listen 80 default;
server_name _;
location / {
root html;
return 404;
}
location ~ /.ht {
모두 거부;
}
}
include vhost /*.conf;
#########################
(4), Proxy_cache 매개변수 구성 추가 include 파일
cd / usr/local/nginx/conf/ # 디렉토리 입력
touch Proxy.conf # 파일 생성
vi /usr/local/nginx/conf/nginx.conf #편집
http 찾기 { 아래 줄 추가
include proxy.conf;
(5) 프록시 서버 목록에 포함된 파일 추가
cd /usr/local/nginx/conf/ #디렉터리 입력
touch mysvrhost.conf #파일 생성
vi /usr/local/ nginx/conf/nginx.conf #편집
이전 단계에서 추가된 코드를 찾아 아래 줄을 추가합니다.
include mysvrhost.conf;
(6), nginx 전역 매개변수 설정
vi /usr/local/nginx/conf/nginx .conf #Edit
worker_processes 2; #작업자 프로세스 수는 CPU의 코어 수 또는 두 배입니다.
events
{
use epoll; #추가
worker_connections 65535; #최대 연결 수를 65535로 수정합니다.
}
###########다음 코드는 http { part############
server_names_hash_bucket_size 128 #Add
client_header_buffer_size 32k에 추가되고 수정됩니다. ; #
large_client_header_buffers 4 32k 추가; #
tcp_nopush on 추가 #60
tcp_nodelay로 수정 on; #추가, nginx 버전 표시 안 함 정보
gzip on
gzip_min_length 1k로 수정; #
gzip_http_version 1.1 추가 #
gzip_types text/plain application/x-javascript text/css application/xml 추가 ; # 추가
gzip_vary on; #추가
(7), 프록시_cache 매개변수 구성 설정
cd /home # 디렉토리 입력
mkdir -p /home/proxy_temp_dir # 두 폴더 Proxy_temp_dir 및 Proxy_cache_dir은 동일한 파티션에 있어야 합니다
mkdir - p /home /proxy_cache_dir # 두 폴더proxy_cache_dir 및 Proxy_temp_dir은 동일한 파티션에 있어야 합니다
chown www.www -r Proxy_cache_dir Proxy_temp_dir # 디렉터리 소유자 설정
chmod -r 777 Proxy_cache_dir Proxy_temp_dir # 디렉터리 권한 설정
시스템 운영 및 유지 관리 www.osyunwei .com 참고 사항: qihang01 원본 콘텐츠 © 재인쇄 시 원본 및 원본 텍스트 링크를 표시하세요.
cd /usr/local/nginx/conf/ #디렉토리를 입력하세요
vi proxy.conf #편집, 다음을 추가하세요. code
proxy_temp_path /home/proxy_temp_dir ; #임시 파일 디렉터리 지정
proxy_cache_path /home/proxy_cache_dirlevels=1:2keys_zone=cache_one:50m inactive=1d max_size=1g;
#웹 캐시 영역 이름을 cash_one으로 설정, 메모리 캐시는 50MB로 설정되며, 1일 이내에 사용하지 않으면 자동으로 지워집니다. 액세스된 파일의 경우 하드 디스크 캐시는 1GB입니다.
client_body_buffer_size 512k; #버퍼 프록시가 클라이언트 요청을 버퍼링할 수 있는 최대 바이트 수를 늘립니다.
proxy_connect_timeout 60; #백엔드 서버 연결 시간 제한을 늘립니다.
proxy_read_timeout 60 #백엔드 서버가 요청에 응답하는 시간 제한을 늘립니다. proxy_send_timeout 60; #종료 서버 전송 데이터 시간 초과
proxy_buffer_size 32k; #프록시 요청 버퍼 크기 증가
proxy_busy_buffers_size 128k; #시스템 사용량이 많을 때 적용할 수 있는 Proxy_buffers 크기 증가 _file_write_size 128k; #프록시 캐시 임시 파일 크기 늘리기
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; #增加故障转移,如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。proxy_cache cache_one; #增加使用web缓存区cache_one
(八)、设置被代理服务器文件列表
cd /usr/local/nginx/conf/ #进入目录
vi mysvrhost.conf #编辑,添加以下代码
upstream osyunweihost {
server 192.168.21.129:80 weight=1 max_fails=2 fail_timeout=30s;
}
(九)、新建虚拟主机配置文件
cd /usr/local/nginx/conf/vhost #进入虚拟主机目录
touch www.osyunwei.com.conf #建立虚拟主机配置文件
vi www.osyunwei.com.conf #编辑
listen 80;
server_name www.osyunwei.com osyunwei.com;
{
proxy_pass http://osyunweihost;
proxy_cache_key $host$uri$is_args$args; #增加设置web缓存的key值,nginx根据key值md5哈希存储缓存
proxy_set_header host $host;
proxy_set_header x-forwarded-for $remote_addr;
proxy_cache_valid 200 304 12h;
expires 2d;
}
location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml)?$ #列出的扩展名文件不缓存。
proxy_set_header host $host;
proxy_set_header x-forwarded-for $remote_addr;
proxy_pass http://osyunweihost;
}
access_log off;
}
{
allow 127.0.0.1;
allow 192.168.21.0/24; #设置只允许指定的ip或ip段才可以清除url缓存。
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
###################以上操作在nginx反向代理服务器上配置###################
9、ngx_cache_pure清除缓存模块使用说明
说明:根据配置只允许192.168.21.0/24 ip段的主机才可以清除url缓存,现在我使用的客户机ip是:192.168.21.130,有权限清除url缓存。
1、purge是ngx_cache_pure 模块指令
2、images/nopic.gif 是要清除的缓存文件url路径 user www www;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
use epoll;
worker_connections 65535;
}
http {
include proxy.conf;
include mysvrhost.conf;
include 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 logs/access.log main;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
sendfile on;
tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server {
listen 80 default;
server_name _;
location / {
root html;
return 404;
}
location ~ /.ht {
deny all;
}
}
include vhost/*.conf;
}
upstream osyunweihost {
server 192.168.21.129:80 weight=1 max_fails=2 fail_timeout=30s;
}
proxy_temp_path /home/proxy_temp_dir;
proxy_cache_path /home/proxy_cache_dir levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g;
client_body_buffer_size 512k;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 60;
proxy_buffer_size 32k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_cache cache_one;
server {
listen 80;
server_name www.osyunwei.com osyunwei.com;
location /
{
proxy_pass http://osyunweihost;
proxy_cache_key $host$uri$is_args$args;
proxy_set_header host $host;
proxy_set_header x-forwarded-for $remote_addr;
proxy_cache_valid 200 304 12h;
expires 2d;
}
location ~ /purge(/.*)
{
allow 127.0.0.1;
allow 192.168.21.0/24;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml)?$
{
proxy_set_header host $host;
proxy_set_header x-forwarded-for $remote_addr;
proxy_pass http://osyunweihost;
}
access_log off;
}
#################################################################
nginx修改版本等信息
vi /usr/local/src/nginx-1.0.12/src/core/nginx.h #编译前编辑
#define nginx_version
#define nginx_version
#define nginx_ver
#define nginx_var
修改上面的信息,即可更改nginx显示版本。
vi /usr/local/src/http/ngx_http_special_response.c #编译前编辑
static u_char ngx_http_error_full_tail[] =
static u_char ngx_http_error_tail[] =
修改上面的信息为你自己的。
위 내용은 Nginx 역방향 프록시 및 Proxy_cache 캐시를 사용하여 CDN 서버를 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

NginxUnit의 목적은 웹 응용 프로그램의 배포 및 관리를 단순화하는 것입니다. 장점은 다음과 같습니다. 1) Python, PHP, Go, Java 및 Node.js와 같은 여러 프로그래밍 언어를 지원합니다. 2) 동적 구성 및 자동 재 장전 기능을 제공합니다. 3) 통합 API를 통해 응용 프로그램 수명주기를 관리합니다. 4) 고 동시성 및 하중 밸런싱을 지원하기 위해 비동기 I/O 모델을 채택하십시오.

Nginx는 2002 년에 시작하여 Igorsysoev가 C10K 문제를 해결하기 위해 개발했습니다. 1.NGINX는 고성능 웹 서버, 이벤트 중심의 비동기 아키텍처로 높은 동시성에 적합합니다. 2. 리버스 프록시,로드 밸런싱 및 캐싱과 같은 고급 기능을 제공하여 시스템 성능 및 신뢰성을 향상시킵니다. 3. 최적화 기술에는 HTTP/2 및 보안 구성을 사용하여 작업자 프로세스 수 조정, GZIP 압축 가능성이 포함됩니다.

Nginx와 Apache의 주요 아키텍처 차이점은 Nginx가 이벤트 중심의 비동기 비 블로킹 모델을 채택하는 반면 Apache는 프로세스 또는 스레드 모델을 사용한다는 것입니다. 1) NGINX는 이벤트 루프 및 I/O 멀티플렉싱 메커니즘을 통해 고유 한 연결을 효율적으로 처리하며, 정적 컨텐츠 및 리버스 프록시에 적합합니다. 2) Apache는 다중 프로세스 또는 다중 스레드 모델을 채택하는데,이 모델은 매우 안정적이지만 자원 소비가 높으며 풍부한 모듈 확장이 필요한 시나리오에 적합합니다.

Nginx는 동시 및 정적 컨텐츠가 높은 반면 Apache는 복잡한 구성 및 동적 컨텐츠에 적합합니다. 1. Nginx는 교통량이 많은 시나리오에 적합한 동시 연결을 효율적으로 처리하지만 동적 컨텐츠를 처리 할 때 추가 구성이 필요합니다. 2. Apache는 복잡한 요구에 적합하지만 동시성 성능이 좋지 않은 풍부한 모듈과 유연한 구성을 제공합니다.

Nginx와 Apache는 각각 고유 한 장점과 단점이 있으며 선택은 특정 요구에 기초해야합니다. 1.NGINX는 비동기 비 블로킹 아키텍처로 인해 높은 동시 시나리오에 적합합니다. 2. Apache는 모듈 식 설계로 인해 복잡한 구성이 필요한 저소성 시나리오에 적합합니다.

NginXunit은 여러 프로그래밍 언어를 지원하고 동적 구성, 제로 다운 타임 업데이트 및 내장로드 밸런싱과 같은 기능을 제공하는 오픈 소스 응용 프로그램 서버입니다. 1. 동적 구성 : 다시 시작하지 않고 구성을 수정할 수 있습니다. 2. 다국어 지원 : Python, Go, Java, PHP 등과 호환됩니다. 3. 제로 다운 타임 업데이트 : 서비스를 중단하지 않는 응용 프로그램 업데이트를 지원합니다. 4. 내장로드 밸런싱 : 요청을 여러 응용 프로그램 인스턴스에 배포 할 수 있습니다.

NginxUnit은 다국어 프로젝트 및 동적 구성 요구 사항에 적합한 Apachetomcat, Gunicorn 및 Node.js 내장 HTTP 서버보다 낫습니다. 1) 여러 프로그래밍 언어를 지원하고, 2) 동적 구성 재 장전을 제공합니다. 3) 확장 성과 신뢰성이 높은 프로젝트에 적합한 내장로드 밸런싱 기능.

NginxUnit은 모듈 식 아키텍처 및 동적 재구성 기능으로 응용 프로그램 성능 및 관리 가능성을 향상시킵니다. 1) 모듈 식 설계에는 마스터 프로세스, 라우터 및 응용 프로그램 프로세스가 포함되어 효율적인 관리 및 확장을 지원합니다. 2) 동적 재구성을 통해 CI/CD 환경에 적합한 런타임시 구성을 완벽하게 업데이트 할 수 있습니다. 3) 다국어 지원은 언어 런타임의 동적로드를 통해 구현되어 개발 유연성을 향상시킵니다. 4) 고성능은 이벤트 중심 모델과 비동기 I/O를 통해 달성되며 높은 동시성에서도 효율적으로 유지됩니다. 5) 응용 프로그램 프로세스를 분리하고 응용 프로그램 간의 상호 영향을 줄임으로써 보안이 향상됩니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

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

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
