2020. 1. 3. 09:48ㆍCloud/MS Azure
web server, was server, db server를 Azure Public Cloud를 이용해 빠르고 쉽게 구축과 부하분산을 하려고 한다.
1 Web(Apache) 서버 구축
1.1 Apache 설치
$ yum install -y httpd
1.2 방화벽 설정 및 시작
$ firewall-cmd --permanent --add-service=http
$ firewall-cmd --reload
$ systemctl enable httpd
$ systemctl start httpd
포트번호는 nsg에도 동일하게 적용
1.3 HTML
/var/www/html 에 문서를 작성
ex) locathost/test.html
1.4 Reference
2 Was(Tomcat) 서버 구축
2.1 Tomcat 설치
$ yum install -y tomcat*
2.2 Java 설치
http://www.oracle.com/technetwork/java/javase/downloads/index.html
PC로 오라클 웹사이트 접속 후 jdk rpm 다운로드 링크 주소 복사
was 서버에 jdk 다운로드
$ wget -c 다운로드링크주소
.rpm으로 끝나게 파일명 수정
$ mv jdk-8u131-linux-x64.rpm\?AuthParam\=1495957368_916432334b6dc573 jdk-8u131-linux-x64.rpm
rpm 명령어로 설치 진행
i : 설치, v : 정보뷰, h : hash 표기
$ rpm -ivh jdk-8u131-linux-x64.rpm
자바 선택
$ alternatives --config java
2.3 방화벽 설정 및 시작
ajp 프로토콜의 포트번호 : 8009
$ firewall-cmd --permanent --add-port=8009/tcp
$ firewall-cmd --reload
$ systemctl enable tomcat
$ systemctl start tomcat
포트번호는 nsg에도 동일하게 적용
2.4 Reference
3 DB(MariaDB) 서버 구축
3.1 MariaDB 설치
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
$ yum install -y MariaDB-server
방화벽 설정 및 시작
$ firewall-cmd --permanent --add-port=3306/tcp
$ firewall-cmd --reload
$ systemctl enable mariadb
$ systemctl start mariadb
$ mysql_secure_installation
포트번호는 nsg에도 동일하게 적용
3.2 계정 생성
$ mysqladmin -u root password '1234'
$ mysql -u root -p
grant select, insert, update, delete, create on test.* to 'testuser'@'localhost' identified by '1234';
grant select, insert, update, delete, create on test.* to 'testuser'@'%' identified by '1234';
flush privileges;
quit;
$ mysql -u testuser -p
connect test;
create table test(name varchar(30));
insert into test values('MariaDB Database');
insert into test values('sunguru');
commit;
quit;
4 mod_jk로 Apache와 Tomcat 연동
4.1 mod_jk 설치
$ yum install gcc gcc-c++ httpd-devel
http://tomcat.apache.org/download-connectors.cgi
PC로 접속 후 JK 1.2.46 Source Release tar.gz 다운로드 링크 주소 복사
apache 서버에 jk 다운로드
$ wget -c 다운로드링크주소
$ tar zxvf tomcat-connector*
$ cd tomcat-connector*/native
$ ./configure --with-apxs=/usr/bin/apxs
$ make
$ make install
$ chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so
4.2 Apache 설정
$ vi /etc/httpd/conf/httpd.conf
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkShmFile run/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%y %m %d %H:%M:%S] "
JkMount /* ajp13
$ vi /etc/httpd/conf/workers.properties
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host={hostIP}
worker.ajp13.type=ajp13
4.3 Reference
5 Connector로 Tomcat과 MariaDB 연동
$ yum install -y mysql-connector-java
$ cp /usr/share/java/mysql-connector-java.jar /usr/share/tomcat/lib
$ systemctl restart tomcat
5.1 JSP를 통한 DB 연동 테스트
$ cd /usr/share/tomcat/webapps/ROOT/
$ vi test.jsp
<html>
<body>
<%@ page contentType="text/html" language="java" %>
<%@ page import="java.sql.*" %>
<%
Connection con = null;
PreparedStatement PS = null;
ResultSet RS = null;
try {
String MARIADB_SERVER = "10.1.2.4:3306";
String MARIADB_SERVER_USERNAME = "testuser";
String MARIADB_SERVER_PASSWORD = "1234";
String MARIADB_DATABASE = "test";
String URL = "jdbc:mysql://" + MARIADB_SERVER + "/" + MARIADB_DATABASE;
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(URL, MARIADB_SERVER_USERNAME, MARIADB_SERVER_PASSWORD);
%>
<%
String query = "select * from test";
PS = con.prepareStatement(query);
RS = PS.executeQuery();
int count=0;
while(RS.next()) {
String name = RS.getString("name");
%>
<p>Name : <%=name%></p>
<%
count++;
}
} catch(Exception ErrMsg) {
ErrMsg.printStackTrace();
out.println("Unfortunately, Database connection failed");
}
%>
</body>
</html>
5.2 was 서버의 selinux를 permissive로 변경
vi /etc/sysconfig/selinux
5.3 Reference
http://blog.naver.com/PostView.nhn?blogId=sunguru&logNo=220935388261
'Cloud > MS Azure' 카테고리의 다른 글
Azure Media Service를 이용한 실시간 스트리밍 구현 (0) | 2019.12.12 |
---|