Nginx 서버 설치 상세 정보 및 설정: 역방향 프 록 시 + 동정 분리 + 부하 균형 + keepalived 높 은 사용 가능

11805 단어 linux
Linux 에 설치 설정 Nginx 를 자세히 설명 합 니 다.
1. 스트레스 부터 푼다
 [root@Master nginx-1.8.1]# tar -zxvf nginx-1.8.1.tar.gz -C /usr/local/src/  (/ usr / local / src / 여러분 이 약속 한 디 렉 터 리 입 니 다)
2. nginx 소스 디 렉 터 리 에 들 어가 기
[root@Master ~]# cd /usr/local/src/ [root@Mastersrc] \ # ll 총 용량 4 drwxr - xr - x. 8 hadop hadop 4096 1 월 26 2016 nginx-1.8.1 [root@Master src]# cd nginx-1.8.1/ [root@Masternginx - 1.8.1] \ # ll 총 용량 644 drwxr - xr - x. 6 hadop hadop  4096 4 월 13: 22 auto - rw - r -- r - -. 1 hadop hadop 251319 1 월 26 2016 CHANGE - rw - r -- r -. 1 hadop hadop 383019 1 월 26 2016 CHANGES.ru drwxr-xr-x. 2 hadoop hadoop   4096 4 월 30 13:22 conf -rwxr-xr-x. 1 hadoop hadoop   2478 1 월 26 2016 configure drwxr-xr-x. 4 hadoop hadoop     68 4 월 30 13:22 contrib drwxr-xr-x. 2 hadoop hadoop     38 4 월 30 13:22 html -rw-r--r--. 1 hadoop hadoop   1397 1 월 26 2016 LICENSE drwxr-xr-x. 2 hadoop hadoop     20 4 월 30 13:22 man -rw-r--r--. 1 hadoop hadoop     49 1 월 26 2016 README drwxr-xr-x. 8 hadoop hadoop     71 4 월 30 13:22 src
3. 설치 환경 을 확인 하고 앞으로 설치 할 경 로 를 지정 합 니 다.
[root@Master nginx-1.8.1]# ./configure --prefix=/usr/local/nginx
설치 환경 을 검사 하 는 데 성공 한 것 은 다음 과 같다.
Configuration summary   + using system PCRE library   + OpenSSL library is not used   + using builtin md5 code   + sha1 library is not found   + using system zlib library   nginx path prefix: "/usr/local/nginx"   nginx binary file: "/usr/local/nginx/sbin/nginx"   nginx configuration prefix: "/usr/local/nginx/conf"   nginx configuration file: "/usr/local/nginx/conf/nginx.conf"   nginx pid file: "/usr/local/nginx/logs/nginx.pid"   nginx error log file: "/usr/local/nginx/logs/error.log"   nginx http access log file: "/usr/local/nginx/logs/access.log"   nginx http client request body temporary files: "client_body_temp"   nginx http proxy temporary files: "proxy_temp"   nginx http fastcgi temporary files: "fastcgi_temp"   nginx http uwsgi temporary files: "uwsgi_temp"   nginx http scgi temporary files: "scgi_temp"
원본 코드 의 설 치 는 일반적으로 세 단계 로 구성 된다. 설정 (configure), 컴 파일 (make), 설치 (make install).
Configure 는 실행 가능 한 스 크 립 트 입 니 다. 설치 할 원본 경로 에서 명령 을 사용 합 니 다. / configure – help 출력 자세 한 옵션 목록 입 니 다.
그 중에서 -- prefix 옵션 은 설 치 된 경 로 를 설정 하 는 것 입 니 다. 이 옵션 을 설정 하지 않 으 면 설치 후 실행 가능 한 파일 은 기본적으로 / usr / local / bin 에 두 고 라 이브 러 리 파일 은 기본적으로 / usr / local / lib 에 두 며 설정 파일 은 기본적으로 / usr / local / etc 에 두 고 다른 자원 파일 은 / usr / local / share 에 두 어 어수선 합 니 다.
설정 -- prefix, 예:
 
   
  1. ./configure --prefix=/usr/local/test
可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。

用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall

4.使用yum安装缺少的包

yum -y install  gcc pcre-devel .......

5.编译安装

make&&make install
安装完成后测试是否正常
1.进入/usr/local/nginx/bin目录
2.启动nginx脚本文件
[root@Master sbin]# ./nginx
3.查看端口是否有nginx进程监听(80端口) [root@Master sbin]# netstat -ntlp Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      32829/mysqld        tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1488/nginx: master  tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      2533/dnsmasq        tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1293/sshd           tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1290/cupsd          tcp6       0      0 :::8009                 :::*                    LISTEN      41740/java          tcp6       0      0 :::8080                 :::*                    LISTEN      41740/java          tcp6       0      0 :::22                   :::*                    LISTEN      1293/sshd           tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      41740/java   

反向代理配置

[root@Master conf]# vi nginx.conf
配置nginx.conf的配置文件
server {        listen       80;        server_name  Master;   #nginx所在服务器的主机名        #charset koi8-r;        #access_log  logs/host.access.log  main;       #反向代理的配置        location / {                                            #拦截所有请求            root   html;             proxy_pass   http://192.168.0.21:8080;   #这里是代理走向的目标服务器:tomcat        }

动静分离

#动态资源 index.jsp
location ~ .*\.(jsp|do|action)$ {        #    proxy_pass  http://192.168.0.21:8080;        #}
#静态资源
location ~ .*\.(html|js|css|gif|jpg|jpng|png)$ {       (~表示大小写敏感,.表示任何非回车字符,*表示多个或0个,\.表示.)
    expires 3d; #  3 

}
부하 균형
upstream 후의 이름 은 마음대로 지 을 수 있 지만 location 의 proxypass http: / / 후의 일치 유지
http {     upstream tomcats {         server Master:8080 weight=1;         server Slave1:8080 weight=1;         server Slave2:8080 weight=1;     }
   location ~ .*\.(jsp|do|action)$ {         #    proxy_pass   http://tomcats;  #tomcats 는 뒤쪽 tomcat 서버 그룹의 논리 적 그룹 번호 입 니 다.        #}
}
keepalived 를 이용 하여 높 은 신뢰성 실현 (HA)
1. keepalived 설치
2. keepalived 를 시스템 서비스 에 추가 합 니 다 (service 호출 가능)
[root@Master local]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ [root@Master local]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/init.d/keepalived [root@Master local]# cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/ [root@Master local]# mkdir -p /etc/keepalived [root@Master local]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf [root@Master local]# chmod +x /etc/init.d/keepalived 
3. keepalived 를 시작 할 때 까지 추가
[root@Master local]# chkconfig --add keepalived [root@Master local]# chkconfig keepalived on
keepalived 가상 IP 설정
프로필 들 어가 기
[root@Master local]# vi /etc/keepalived/keepalived.conf 
\ # Master 노드 설정
vrrp_instance VI_1 {     state MASTER     #A 노드 를 주 노드 로 지정 하고 예비 노드 를 BACKUP 으로 설정 하면 됩 니 다.    interface eth0      #가상 IP 를 연결 하 는 네트워크 인터페이스    virtual_router_id 51      #VRRP 그룹 이름, 두 노드 는 같은 그룹 에 속 하 는 것 을 가리 키 기 위해 같 아야 합 니 다.    priority 100                  #주 노드 의 우선 순위 (1 - 254 사이), 예비 노드 는 반드시 주 노드 의 우선 순위 가 낮 아야 합 니 다.
    advert_int 1             #멀티캐스트 정보 전송 간격, 두 노드 설정 이 같 아야 합 니 다.    authentication {       #인증 정보 설정        auth_type PASS         auth_pass 1111     }     virtual_ipaddress {    #가상 IP 를 지정 합 니 다. 두 노드 설정 과 마찬가지 로 Ngnix 서버 와 같은 네트워크 에 속 해 야 합 니 다.        192.168.200.16         192.168.200.17         192.168.200.18     } }
기계 에 있 는 keepalived 를 시작 합 니 다.
service keepalived start
여러 ip 보기  ip addr
keepalived 심장 박동 검사 설정
프로필 들 어가 기
[root@Master local]# vi /etc/keepalived/keepalived.conf 
원리:
keepalived 는 nginx 와 결합 하지 않 습 니 다. 둘 은 전혀 가족 이 아 닙 니 다.
그러나 keepalived 는 시스템 을 제공 합 니 다. 사용자 가 셸 스 크 립 트 를 사용자 정의 하여 사용자 의 프로그램 을 검사 하고 상 태 를 keepalived 에 게 되 돌려 주면 됩 니 다.
vrrp_script chk_health{   script "|| ps -ef | grep nginx | grep -v grep | wc -l -ge 2||&& exit 0 || exit 1"   interval 1    #위의 스 크 립 트 를 1 초 간격 으로 실행 하고 ngnix 프로그램 을 검사 합 니 다.  weight -2    #1, 즉 지연 이 발생 했 을 때, weight - 2 를 되 돌려 줍 니 다.  } vrrp_instance VI_1 {     state MASTER     interface eth0     virtual_router_id 51     priority 100     advert_int 1     authentication {         auth_type PASS         auth_pass 1111     }     track_script{    #추적 스 크 립 트        chk_health     }
   #ngnix 사용자 프로그램 을 관리 합 니 다. ngnix 가 다운 된 후에 다시 시작 할 수 없습니다.
  notify_master   "/usr/local/keepalived/sbin/notify.sh master"   (Master 가 됨)
  notify_backup    "/usr/local/keepalived/sbin/notify.sh backup"  (백업 이 됨)
  notify_fault     "/usr/local/keepalived/sbin/notify.sh fault"       (이상 발생)
/ usr / local / keepalived / sbin 으로 전환 하여 스 크 립 트 notify. sh 를 만 들 고 직접 작성 합 니 다.
case   “$1” in
master)
                            
/usr/local/keepalived/sbin/nginx
        exit 0
        ::
       backup)
                
/usr/local/keepalived/sbin/nginx  -s stop
/usr/local/keepalived/sbin/nginx
        exit 0
        ::
       
       
fault)
                /usr/local/keepalived/sbin/nginx  -s stop
        exit 0
        ::
        *)
    
exit 1
::
esac

좋은 웹페이지 즐겨찾기