본문 바로가기

윈도우즈 개발 환경

Nginx

다운로드 및 설치

공홈 http://nginx.org/에서 가급적이면 Stable 버전 받아서 압축 풀기

 

서비스 등록

  • 매번 커맨드창 열어서 실행하기 귀찮아서 서비스에 등록해버리기
    1. https://nssm.cc/에서 zip파일을 받아서 열어 압축 해제
    2. 서비스에서 계속 필요한 프로그램이니 서비스 등록했다고 지우면 안됨
    3. 본인은 C:/nssm/ 폴더 생성하여 wind64 폴더의 exe를 복사해 넣음
    4. 서비스 등록 명령 실행 (코드 1)
    5. NSSM service installer GUI 나타남 (그림 1)
    6. Path를 압축 해제한 ngnix.exe를 선택하면,
    7. Startup directory도 자동으로 선택됨. 필요에 의해 변경 가능.
    8. 필요한 Arguments가 있으면 추가
    9. 다른 탭에 있는 부분이 필요하면 설정 변경 (본인은 건드리지 않음)
    10. Install service 버튼을 클릭
    11. 그림 2와 같이 서비스 등록 완료
C:\nssm>nssm install testNginx

[ 코드 1 ]

그림1
그림 1
그림 2
그림 2

 

 

Reverse proxy 설정

nginx.conf
http {
	upstream default_gateway {
		server 127.0.0.1:8080;
	}
	upstream test_gateway {
		server 127.0.0.1:7777;
	}
	upstream openapi_gateway {
		server 127.0.0.1:7778;
	}
	upstream default_stream {
		server 127.0.0.1:7780;
		server 127.0.0.1:7781;
	}

	include      proxy*.conf;
}
proxy80.conf (http 서버 설정)
	server {
		server_name  router.io;

		listen			80;
		listen			[::]:80;

		access_log  logs/router.access.log;
		charset utf-8;

		location / {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;

			proxy_pass http://default_gateway;
		}

		location /test/ {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;

			proxy_pass http://test_gateway;
		}

		location /openapi/ {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;

			proxy_pass http://openapi_gateway;
		}
	}
proxy443.conf (https 서버 설정)
	server {
		server_name test.nginx.io;
		listen		80;
		listen		[::]:80;

		return 301 https://test.nginx.io$request_uri;
	}
    
	server {
		server_name  test.nginx.io;
		listen		443 ssl;
		listen		[::]:443 ssl;

		# 도메인 인증서 설정
		ssl_certificate		/nginx/cert/wildcard.nginx.io/tls.crt;
		ssl_certificate_key	/nginx/cert/wildcard.nginx.io/tls.key;

		access_log  logs/test.nginx.io.access.log;
		charset utf-8;

		proxy_pass_header Server;

		root /workspace/nginx/html;

		# proxying frontend
		location /console {
			alias	/workspace/nginx/html;
		}

		# proxying backend
		location / {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;

			proxy_pass http://openapi_gateway;
		}
        
		# proxying websocket/sse
		location /stream {
			proxy_http_version 1.1;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;

			proxy_read_timeout 30m;

			proxy_buffering off;
			proxy_cache off;

			proxy_pass http://default_stream;
		}

		# proxying default
		location / {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;

			proxy_pass http://default_gateway;
		}
	}

 

'윈도우즈 개발 환경' 카테고리의 다른 글

Kafka  (0) 2023.03.22
Redis  (0) 2023.03.22
Eclipse  (0) 2023.03.22