Nginx 다 중 사이트 설정 및 부하 균형
여러 개의. conf 방법 (장점 은 유연 하고 단점 은 사이트 가 비교적 많이 설정 되 어 번 거 로 운 것)
여기 서 2 개의 사이트 (2 개의 도 메 인 이름) 를 설정 하 는 것 을 예 로 들 면 n 개의 사이트 가 상응 하 게 조정 할 수 있 습 니 다. 가설:
IP 주소: 1.1.1.1
도 메 인 이름 1 example 1. com / webapp / example 1 에 놓 기
도 메 인 이름 2 example 2. com / webapp / example 2 에 놓 기
nginx virtual hosting 의 기본 사고방식 과 절 차 는 다음 과 같 습 니 다.
2 개의 사이트 example 1. com, example 2. com 을 nginx 가 접근 할 수 있 는 디 렉 터 리 / webapp / 각 사이트 에 각각 nginx 프로필 example 1. com. conf, example 2. com. conf 를 만 들 고 프로필 을 / usr / local / nginx / vhosts / 에 넣 은 다음 nginx. conf 에 include 를 추가 하여 절차 2 로 만 든 프로필 을 모두 포함 합 니 다 (* 번 으로)다시 시작 nginx
구체 적 인 과정 아래 는 구체 적 인 설정 과정 입 니 다.
1. / usr / local / nginx 에서 vhosts 디 렉 터 리 를 만 듭 니 다. mkdir /usr/nginx/vhosts
2. / usr / local / nginx / vhosts / 에 example 1. com. conf 라 는 파일 을 만 들 고 다음 내용 을 복사 합 니 다.
server {
listen 80;
server_name example1.com www.example1.com; access_log /webapp/example1/logs/access_ example1.log;
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
# , tomcat
location ~ \.(jsp|jspx|do|action)?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://tomcat_proxy;
}
# , apache
location ~ \.(php)?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://apache_proxy;
}
location /training/ {
proxy_pass http://tomcat_proxy;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#sub_filter /training/ /;
}
#
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 7d;
}
location ~ .*\.(js|css)?$ {
expires 24h;
}
location / {
root /webapp/example1/www;
index index.html index.htm index.php index.jsp;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
location ~ /.ht {
deny all;
}
}
3. / usr / local / nginx / conf / nginix. conf 파일 을 열 고 해당 위치 에 include 를 추가 하여 상기 파일 을 포함 합 니 다.
# main server config (http part)
http {
include mime.types;
default_type application/octet-stream;
# http header
#server_tokens off;
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;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 65;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 3m;
client_body_buffer_size 512k;
#
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
# gzip ,
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;
# tomcat
upstream tomcat_proxy{
ip_hash;
session_sticky;
server localhost:8080 max_fails=3 weight=1 fail_timeout=60s;
}
# apache
upstream apache_proxy{
ip_hash;
session_sticky;
server localhost:88 max_fails=3 weight=1 fail_timeout=60s;
}
server {
listen 80;
server_name _;
access_log /var/local/nginx/logs/access.log;
index index.html index.htm index.jsp index.php;
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
# , tomcat
location ~ \.(jsp|jspx|do|action)?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://tomcat_proxy;
}
# , apache
location ~ \.(php)?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://apache_proxy;
}
#charset koi8-r;
#access_log logs/host.access.log main;
location /training/ {
proxy_pass http://tomcat_proxy;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#sub_filter /training/ /;
}
#
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 7d;
}
location ~ .*\.(js|css)?$ {
expires 24h;
}
access_log off;
#charset koi8-r;
#access_log logs/host.access.log main;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
#
include /usr/local/nginx/vhosts/*;
}
4. apache 다 중 사이트 설정
1. Apache 。
Apache conf/httpd.conf , , # , 。
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
2. DocumentRoot Directory,
/webapp/example1/www,
DocumentRoot"/webapp"
3. :
DocumentRoot ,ServerName :
ServerAdmin [email protected]
DocumentRoot "/webapp/example1/www " #web
ServerName example.com #host
ServerAlias www.example.com
ErrorLog "/webapp/example1/logs/dummy-host.example.com-error.log"
CustomLog "/webapp/example1/logs/dummy-host.example.com-access.log" common
5. tomcat 다 중 사이트 설정
1 tomcat/conf/server.xml, .....
2 :
.........
:
/webapp/example1/www web
6. 서비스 재 개
Nginx
/etc/init.d/nginx restart
apache
/etc/init.d/httpd restart
tomcat
cd /ilkhome/apache-tomcat-8.0.36/bin/
./shutdown.sh
./startup.sh
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.