nginx 상용 명령 -- 학습 노트

4290 단어 linux
  • macos 오류 보고
  • nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
    

    실행 nginx -c /usr/local/etc/nginx/nginx.conf상용 명령
    cd /usr/local/nginx/sbin #    
    #macos  /usr/local/Cellar/nginx/1.19.0
    ./nginx -v #     
    ./nginx    #   nginx
    ./nginx -t #             
    ./nginx -s reopen #  Nginx
    ./nginx -s reload #    Nginx    ,          Nginx
    ./nginx -s stop #    Nginx  
    ./nginx -s quit #     Nginx  (              )
    

    프로필
    cd /usr/local/nginx/conf
    #macos /usr/local/etc/nginx/nginx.conf
    #docker   /etc/nginx/nginx.conf
    vim nginx.conf 
    
    worker_processes  1; #          ,   ,          ,       、        
    worker_connections  1024; #     
    

    샘플 1
        server {
            listen       80;
            server_name  192.168.1.200;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                proxy_pass http://127.0.0.1:8080;
                index  index.html index.htm;
            }
    
    

    location 문법 규칙: location [=|~|~*|^~] /uri/ { … }
  • = 첫머리 는 정확 한 매 칭 을 나타 낸다
  • ^ ~ 시작 은 uri 가 일반적인 문자열 로 시작 하여 url 경로 와 일치 하 는 것 으로 이해 하면 됩 니 다
  • ~ 대소 문 자 를 구분 하 는 정규 일치
  • ~ * 대소 문 자 를 구분 하지 않 는 정규 일치
  • !~와!대소 문자 의 일치 하지 않 음 과 대소 문자 의 일치 하지 않 음 을 구분 하 는 정규
  • / 공통 일치, 모든 요청 이 일치 합 니 다.

  • 여러 location 설정 의 경우 일치 하 는 순 서 는 다음 과 같 습 니 다.
  • 우선 매 칭 =
  • 다음으로 일치 합 니 다 ^ ~
  • 파일 의 일치 순서에 따라 실행
  • 마지막 일치 /
  • 샘플 2
        server {
            listen       9001;
        #    listen       somename:8080;
           server_name  192.168.1.200;
    
            location ~ /edu/ {
               proxy_pass http://192.168.1.200:8080;
            }
            location ~ /vod/ {
               proxy_pass http://192.168.1.200:8081;
            }
        }
    
  • 부하 균형 샘플 기본 폴 링 전략
  • http {
        ...
        upstream myserver {
            server 192.168.1.200:8080;
            server 192.168.1.200:8081; 
        }
        
        server {
            listen       80;
            server_name  192.168.1.200;
        
            location / {
                root   html;
                proxy_pass http://myserver;
                index  index.html index.htm;
            }
        ...
    
  • 가중치 전략
  •     upstream myserver {
            server 192.168.1.200:8080 weight=5; #     1
            server 192.168.1.200:8081 weight=10; 
        }
    
  • hash 전략
  •     upstream myserver {
            ip_hash;
            server 192.168.1.200:8080;
            server 192.168.1.200:8081; 
        }
    
  • 제3자 정책 (서버 응답 시간 에 따라 분배 하고 응답 시간 이 짧 은 우선 분배)
  •     upstream myserver {
            server 192.168.1.200:8080;
            server 192.168.1.200:8081;
            fair;
        }
    

    동정 분리
        server {
            listen       80;
            server_name  192.168.1.200;
    
            location /www/ {
                root   /data/;
                index  index.html index.htm;
            }
        	location /image/ {
        	    root /data/;
        	    autoindex on; #      
        	}
    

    고가 용
    keepalived.conf
    global_defs {
    	notification_email {
    		[email protected]
    		[email protected]
    		[email protected]
    	}
    	notification_email_from [email protected]
    	smtp_server 192.168.17.129
    	smtp_connect_timeout 30
    	router_id LVS_DEVEL
    }
    vrrp_script chk_http_port {
    	script "/usr/local/src/nginx_check.sh"
    	interval 2 #(         )
    	weight 2
    }
    
    vrrp_instance VI_1 {
    	state MASTER #         MASTER    BACKUP
    	interface eth0 //  
    	virtual_router_id 51 #  、    virtual_router_id     
    	priority 100 #  、         ,     ,      
    	advert_int 1
    	authentication {
    		auth_type PASS
    		auth_pass 1111
    	}
    	virtual_ipaddress {
    		192.168.17.50 // VRRP H     
    	}
    }
    

    nginx_check.sh
    #!/bin/bash
    A=`ps -C nginx – no-header |wc -l`
    if [ $A -eq 0 ];then
    	/usr/local/nginx/sbin/nginx
    	sleep 2
    	if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
    		killall keepalived
    	fi
    fi
    

    macos 설정 포트 전송
        server {
            listen       80;
            server_name  web.aaa.com;
    
            location / {
                proxy_pass http://localhost:8080;
            }
        }
    

    좋은 웹페이지 즐겨찾기