서버 설정 (CentOS7 + Node.js + Mysql + Nginx)

13302 단어 vps

시작



Vultr 관리 화면에서 새 서버를 추가합니다.
* Vultr은 무엇입니까, 사람은 여기에서 부디

관리 화면의 password로 서버에 들어간다.

서버 설정



# ユーザー追加、パスワード設定
$ useradd hoge_user
$ passwd hoge_user
# sudoの設定
$ usermod -G wheel hoge_user
$ visudo

wheel 곳에 코멘트 아웃되어 있으므로, 아래와 같이 유효하게 한다.
## Allows people in group wheel to run all commands 
%wheel ALL=(ALL) ALL

일단 설정되면 일반 사용자로 다시 로그인합니다.

# sudo試してみる、問題無くできたらおk
$ sudo ls

다음에 ssh 주위를 해 간다. 먼저 열쇠를 놓아두기로 한다. ssh 키를 만들기 때문에 일단 서버에서 나와 로컬로 키를 만든다.

$ cd ~
$ mkdir .ssh
$ cd ~/.ssh
# 4096bitのid_rsaという名前のkeyを作る(秘密鍵:id_rsa, 公開鍵:id_rsa.pubが作成される)
$ ssh-keygen -f id_rsa -t rsa -b 4096
# 公開鍵をサーバー側に送る
$ scp ~/.ssh/id_rsa.pub hoge_user@IPアドレス:~/

hoge_user로 서버쪽으로 들어가기

# hoge_userのままでやる
$ cd /home/hoge_user
$ mkdir .ssh
$ chmod 700 .ssh
$ cat id_rsa.pub > .ssh/authorized_keys 
$ chmod 600 .ssh/authorized_keys 
$ rm -f id_rsa.pub

이것으로 일단 키 지정으로 ssh 로그인 할 수 있게 될 것. $ ssh -i ~/.ssh/id_rsa hoge_user@IPアドレス
한층 더 ssh의 설정을 해 간다. (ssh 포트 변경, 루트 로그인 금지, 비밀번호 로그인 금지)

앞에, 사쿠토firewall계의 설정을 해 간다.

다음에 firewall 대응해 간다. 대략 명령 확인. 기동하지 않았으면 기동시켜 둔다.

# status
$ systemctl status firewalld

# start
$ systemctl start firewalld

# stop
$ systemctl stop firewalld
# portsとかservicesとかを確認
$ firewall-cmd --list-all

ssh로 열 수 있는 포트를 써 둔다.

/usr/lib/firewalld/services/ssh.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="12345"/>
</service>

# 反映
$ systemctl reload firewalld.service

이번 이용하는 http(80), https(443), smtp(25), smtps(587)도 여기에서 맞추어 대응해 둔다.
$ firewall-cmd --add-port=80/tcp --zone=public --permanent
$ firewall-cmd --add-port=443/tcp --zone=public --permanent
$ firewall-cmd --add-port=25/tcp --zone=public --permanent
$ firewall-cmd --add-port=587/tcp --zone=public --permanent
$ firewall-cmd --add-service=http --zone=public --permanent
$ firewall-cmd --add-service=https --zone=public --permanent
$ firewall-cmd --add-service=smtp --zone=public --permanent
$ firewall-cmd --add-service=smtps --zone=public --permanent

$ firewall-cmd --reload

자, 여기서 ssh로 돌아와 대응 해 나간다. (ssh 포트 변경, 루트 로그인 금지, 비밀번호 로그인 금지)

$ vi /etc/ssh/sshd_config

에서 내용을,
#Port 22 
→Port 12345

#PermitRootLogin yes 
→PermitRootLogin no 

PasswordAuthentication yes 
→PasswordAuthentication no    

설정하면 반영한다.

$ systemctl restart sshd.service

여기까지, 로컬로부터 hoge_user로 키 로그인만으로 로그인할 수 있게 되어 있을 것. $ ssh -p 12345 -i ~/.ssh/id_rsa hoge_user@IPアドレス (일단 포트·키 지정했다)

즐겁게하기 위해 로컬로 설정을 작성하십시오.

$ vim ~/.ssh/config

~/.ssh/config
Host hogepiyo
    HostName IPアドレス
    Port 12345
    User hoge_user
    IdentityFile ~/.ssh/id_rsa

이렇게 하면 $ssh hoge_user@hogepiyo로 로그인할 수 있다.

Node.js 설정



nvm으로 node 넣는다.
$ sudo curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

$ export NVM_DIR="$HOME/.nvm"
$ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
$ [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

$ nvm -v

$ nvm install stable

$ node -v
$ npm -v
$ nvm ls

이것으로 Node도 들어갔다!

덤, mysql 넣기



먼저, MariaDB가 기본적으로 도입되어 있는지 확인해 둡니다.
$ yum list installed | grep maria
mariadb-libs.x86_64 1:5.5.44-2.el7.centos @base

만약 발견되면 삭제해 둡니다.
$ sudo yum remove mariadb-libs.x86_64

htps : //에서 v. mysql. 코 m / 도 w 응 아 ds / 레포 / 유 m / 링크 대상에서 다운로드 대상 "No thanks, just start my download."의 링크 대상을 복사합니다.
# インストール
$ yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm(上記でコピーしたリンク)
$ yum install mysql mysql-devel mysql-server mysql-utilities

# 確認
$ mysql --version

# 起動
$ systemctl enable mysqld.service
$ systemctl start mysqld.service

참고:
- htps : // 이 m / prg조차 k / ms / 7c77d4b14d0 a fbf84f5c
- htp : // v로 에 p. 네 t/전과 s7-mysql

mysql_secure_installation 커멘드를 이용하면, 초기 root 패스워드 변경등 실시할 수 있어 편리.
$ mysql_secure_installation

초기 비밀번호는 grep password /var/log/mysqld.log에서 확인.
# ユーザー追加
mysql -u root -- rootでログイン
create user {user名}@localhost identified by {パスワード} -- ユーザー作成


-- test_dbの全権限をtestユーザーに追加
grant all on test_db.* to test@localhost identified by {パスワード};


-- 作成したユーザーでログイン
mysql -u test -p

-- db確認。 権限を追加したDBを確認できる。
show databases

nginx 넣기


$ yum install nginx
無いので、レポ作って入れる

리포지토리를 추가하기 때문에 nginx.repo 파일을 만듭니다.
$ sudo vi /etc/yum.repos.d/nginx.repo

nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
nginxをインストール
$ sudo yum install nginx
バージョンの確認
$ nginx -v
自動起動設定
$ sudo systemctl enable nginx
起動
$ sudo systemctl start nginx

액세스하면 nginx 페이지가 표시됩니다.
시작한 간단한 익스프레스 앱을 표시합니다.
$ express testApp -e ejs
$ vi /etc/nginx/conf.d/testapp.conf

/etc/nginx/conf.d/testapp.conf
upstream testApp {
    server 127.0.0.1:3000;
}

server {
    listen       80;

    # アクセスするIPアドレスか、ドメイン名
    server_name  hogehoge.com;

    proxy_redirect                          off;
    proxy_set_header Host                   $host;
    proxy_set_header X-Real-IP              $remote_addr;
    proxy_set_header X-Forwarded-Host       $host;
    proxy_set_header X-Forwarded-Server     $host;
    proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
    location / {
        proxy_pass http://testApp/;
    }
}

이제 testApp을 시작하고 hogehoge.com에서 볼 수 있다면 OK

*꽤 간이판입니다만, 부족한 설정등 있으면, 꼭 추기·코멘트 주세요 mm

좋은 웹페이지 즐겨찾기