Vultr를 사용하여 파이썬 서버를 배포, 워드프레스와 연동

Vultr를 사용하여 파이썬 서버를 배포, 워드프레스와 연동

오늘은 Vultr를 사용하여 파이썬 서버를 배포하고, 워드프레스와 연동하는 방법을 단계별로 설명하겠습니다.

1. Vultr에서 서버 설정

1.1 Vultr 인스턴스 생성

  1. Vultr에 로그인합니다.
  2. 새 인스턴스 배포:
    • Deploy New Instance 버튼을 클릭합니다.
    • 서버 위치를 선택합니다.
    • 서버 유형으로 Ubuntu 20.04 LTS를 선택합니다.
    • 서버 크기를 선택합니다 (예: 1GB RAM, 25GB SSD).
    • 추가 옵션을 설정합니다 (필요에 따라).
    • Deploy Now 버튼을 클릭하여 서버를 생성합니다.

1.2 서버 접속

서버가 생성되면, 주어진 IP 주소와 루트 암호를 사용하여 서버에 SSH로 접속합니다.

bash

ssh root@your_server_ip

2. 파이썬 환경 설정

2.1 패키지 업데이트 및 Python 설치

서버에 접속한 후, 패키지를 업데이트하고 파이썬 및 필요한 패키지를 설치합니다.

bash

apt update
apt upgrade -y
apt install python3 python3-venv python3-pip -y

2.2 가상 환경 생성 및 활성화

bash

mkdir /var/www/zipcode_converter
cd /var/www/zipcode_converter
python3 -m venv venv
source venv/bin/activate

2.3 Flask 및 기타 패키지 설치

bash

pip install Flask requests gunicorn
3. 파이썬 서버 코드 작성

3.1 server.py 파일 작성

bash

nano /var/www/zipcode_converter/server.py

다음 코드를 작성합니다:

python

from flask import Flask, request, jsonify
import requests

app = Flask(__name__)

@app.route(‘/search’, methods=[‘GET’])
def search_address():
zipcode = request.args.get(‘zipcode’)
encoded_key = ‘YOUR_ENCODED_KEY’ # 실제 키로 변경
response = requests.get(f’https://api.odcloud.kr/api/15075657/v1/uddi:5e37e2a5-1e12-4129-91cf-e5d0eb0e8e0c?page=1&perPage=10&serviceKey={encoded_key}&zipcode={zipcode}’)
return jsonify(response.json())

@app.route(‘/convert’, methods=[‘GET’])
def convert_address():
address = request.args.get(‘address’)
encoded_key = ‘YOUR_ENCODED_KEY’ # 실제 키로 변경
response = requests.get(f’https://api.addressencoding.example.com?key={encoded_key}&text={address}’)
return jsonify(response.json())

if __name__ == ‘__main__’:
app.run(host=’0.0.0.0′, port=5000)

4. Gunicorn 및 Nginx 설정

4.1 Gunicorn으로 Flask 애플리케이션 실행

bash

gunicorn --workers 3 --bind 0.0.0.0:5000 server:app

4.2 Nginx 설치 및 설정

bash

apt install nginx -y

Nginx 설정 파일을 작성합니다:

bash

nano /etc/nginx/sites-available/zipcode_converter

다음 내용을 추가합니다:

nginx

server {
listen 80;
server_name your_server_ip;

location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Nginx 설정 활성화 및 재시작:

bash

ln -s /etc/nginx/sites-available/zipcode_converter /etc/nginx/sites-enabled
nginx -t
systemctl restart nginx

5. 워드프레스에서 파이썬 서버와 통신

워드프레스 플러그인에서 파이썬 서버와 통신하도록 설정합니다.

5.1 워드프레스 플러그인 코드 수정

php

<?php
/*
Plugin Name: Zipcode Converter
Description: 우편번호 검색 및 영어 주소 변환 기능을 제공하는 플러그인입니다.
Version: 1.0
Author: Your Name
*/

function zipcode_converter_shortcode() {
ob_start();
?>
<div id=”zipcode-converter”>
<form id=”zipcode-search-form”>
<input type=”text” id=”zipcode” name=”zipcode” placeholder=”우편번호를 입력하세요”>
<button type=”button” onclick=”searchAddress()”>검색</button>
</form>
<div id=”address-results”></div>
<div id=”english-address”></div>
</div>
<script>
function searchAddress() {
const zipcode = document.getElementById(‘zipcode’).value;
fetch(`http://your_server_ip/search?zipcode=${zipcode}`)
.then(response => response.json())
.then(data => {
let results = ‘<ul>’;
data.data.forEach(address => {
results += `<li>
<button type=”button” onclick=”convertToEnglish(‘${address.roadAddr}’)”>${address.roadAddr}</button>
</li>`;
});
results += ‘</ul>’;
document.getElementById(‘address-results’).innerHTML = results;
})
.catch(error => console.error(‘Error:’, error));
}

function convertToEnglish(address) {
fetch(`http://your_server_ip/convert?address=${encodeURIComponent(address)}`)
.then(response => response.json())
.then(data => {
document.getElementById(‘english-address’).innerText = data.encodedText;
})
.catch(error => console.error(‘Error:’, error));
}
</script>
<?php
return ob_get_clean();
}

add_shortcode(‘zipcode_converter’, ‘zipcode_converter_shortcode’);
?>

6. 플러그인 활성화 및 테스트

  1. 플러그인 활성화: 워드프레스 관리자 페이지로 이동하여, 플러그인 메뉴에서 Zipcode Converter 플러그인을 활성화합니다.
  2. 페이지에 숏코드 추가: 새 페이지나 포스트를 생성하고, [zipcode_converter] 숏코드를 추가합니다.
  3. 테스트:
    • 우편번호를 입력하고 검색 버튼을 클릭하여, 검색 결과가 제대로 나오는지 확인합니다.
    • 검색 결과 중 하나를 선택하고 영어로 변환 버튼을 클릭하여, 변환된 영어 주소가 제대로 표시되는지 확인합니다.

이 과정을 통해 Vultr 서버에서 호스팅된 파이썬 서버와 워드프레스 플러그인이 연동되어 우편번호 검색 및 주소 변환 기능을 수행할 수 있습니다.

Leave a Comment