Nginx 다 중 사이트 설정 및 부하 균형

7152 단어
apache 포트 88 tomcat 포트 8080
여러 개의. 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

좋은 웹페이지 즐겨찾기