投稿者「okamura」のアーカイブ

NginxとgolangでAPIサーバー

golangもNginxも始めたばかりなので、他のブログの記事を参考にしつつ試験中

Nginxのconfにlocation追加

golang

ちょっと違う書き方

VPS(ConoHa)設定

VPS契約したので設定。
Ubuntu入れたと思ったけど、CentOSが入ってる模様。

過去記事参考

VirtualBoxにUbuntu 16.04を入れる(通常のインストール含む)

・vimシンタックス

手元のWSHに入ってたので流用
/usr/share/vim/vim74/syntax/go.vim
同パスにコピー

.vimrcに追加
autocmd BufNewFile,BufRead *.go setfiletype go

・サーバーにSSHで接続する

root@IPアドレス
パスワードは設定済みのrootパスワード

・ユーザー作成

過去記事参考

Ubuntu ユーザーの追加、設定、パーミッション

とりあえずrootで作業中。

・SSHの設定

過去記事参考

Ubuntu セキュリティ関連設定

設定ファイル
/etc/ssh/sshd_config

ポート変える(49152 – 65535辺り)

再起動
systemctl restart sshd

ちなみに

状態
systemctl status

自動起動有効
systemctl enable

自動起動無効
systemctl disable

・独自ドメイン設定

以前、MuuMuuで取得したドメインがあって、
NSをXserverに指定したまま放置していたのでこのドメインを活用する。

メールはそのままXserverで、wwwのみvpsに回す。

xserverのサーバパネルのDNSレコードの設定から編集。

MXはホスト名と内容が同じになっているので、
ホスト名をそのまま独自ドメインで、内容をxserverのドメイン(xxx.xsrv.jp)にする。

Aタイプの3つはIPアドレスをVPSのアドレスに変更する。
(あるいはサブドメインとwww付きを消して1つにしてしまう)

これでしばらく待つと独自ドメインからSSHアクセスできる

・Nginx

今回はphp使わないので、初めてのNginxにて。
yum install nginx

基本のルート
/usr/share/nginx/html

コンフィグ
/etc/nginx/nginx.conf

コンフィグの中にincludeがあり、
conf.d以下を読み込んでいる。

・firewalld

定義されているサービス
firewall-cmd –get-services

許可されているサービス
firewall-cmd –list-service –zone=public
–list-all
–list-services
–list-port

リロード
firewall-cmd –reload

サービスを許可する
firewall-cmd –add-service=http –zone=public –permanent

許可したサービスを削除
firewall-cmd –remove-service=http –zone=public –permanent

許可するポートの追加
firewall-cmd –add-port=22/tcp –zone=public –permanent

許可するポートの削除
firewall-cmd –remove-port=22/tcp –zone=public –permanent

定義済みサービス(編集はしない)
/usr/lib/firewalld/services

定義済みゾーンの確認
firewall-cmd –list-all-zones

アクティブなゾーンの確認
firewall
cmd getactivezones

Nicに対するデフォルトゾーンの確認
firewall-cmd –get-default-zone

NICのゾーンを変える(permanetが不要という記事ある要確認)
firewall-cmd –change-interface=lo –zone=public

NICをゾーンから削除(permanetが不要という記事ある要確認)
firewall-cmd –remove-interface=lo

だいたいの流れ。本来サービス登録なんだろうけど。

登録済みのサービスを消す。
firewall-cmd –remove-service=http –zone=public –permanent
firewall-cmd –remove-service=ssh –zone=public –permanent
firewall-cmd –remove-service=dhcpv6-client –zone=public –permanent

必要なポート追加。
firewall-cmd –add-port=54424/tcp –zone=public –permanent
firewall-cmd –add-port=80/tcp –zone=public –permanent

・MongoDB

とりあえずDBも初めてのMongoで

インストール

/etc/yum.repos.d/mongodb-org-4.0.repo

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

を記載し、

yum install -y mongodb-org

起動
systemctl start mongod

停止
systemctl stop mongod

再起動
systemctl restart mongod

自動起動
systemctl enable mongod

シェル起動
mongo

シェル終了
exit

・Mongoシェルコマンド

db作成・切り替え
use DB

db削除
db.dropDatabase()

利用中db
db

db一覧
show dbs

コレクション一覧
show collections

コレクション作成
db.createCollection(コレクション名)

コレクション削除
db.コレクション名.drop()

ユーザー一覧
db.system.users.find()

ユーザ作成

use admin

db.createUser({
user:”owner”,
pwd:”damz7nfb”,
roles:[{ role: “userAdminAnyDatabase”, db: “admin” }]
})

ユーザー削除
db.dropUser(ユーザー名)

認証有効化

/etc/mongod.conf

security:
authorization: enabled

ログイン方法

> mongo
> use admin
> db.auth(“owner”, “damz7nfb”)

golang テストで小さいプログラム

golangはじめて間もないので調べつつ色々試験中

標準入力から日付判断

SQLite接続

サーバー

SSH接続

他言語で言うクラス

json読み込み

時間

golang インストールメモ

最近golangをはじめたので。

WSLインストール

sudo apt-get update
sudo apt-get install golang

バージョン確認
go version

> 1.6.2

環境確認
go env

.bashrcに追加
export GOPATH=”$HOME/go”
export PATH=”$GOPATH/bin:$PATH”

Db(SQLite)を使ってみる

go get github.com/mattn/go-sqlite3

package context: unrecognized import path “context”
というエラーがでる。

1.7ではcontextパッケージとして標準パッケージに仲間入りする。
とのことなのでアップデート

sudo apt-get install golang-1.9
sudo mv /usr/bin/go /usr/bin/go.old
sudo mv /usr/bin/gofmt /usr/bin/gofmt.old
sudo ln -s /usr/lib/go-1.9/bin/go /usr/bin/go
sudo ln -s /usr/lib/go-1.9/bin/gofmt /usr/bin/gofmt

これで入った。

Windows用にクロスコンパイル

WSLからだと通常こうなっているので、
GOOS=linux
以下の用にしてビルド
GOOS=windows go build hello.go

VBS 起動にちょっとアラート

普通Gカレンダとか使うんだけど。

VBA シート間のコピー

シート間のコピー

C# Xamarin サンプル色々

Xamarinを少し触り始めたので。サンプル色々。

ボタンでアラート

ピッカー(選択リスト)

タイマーとプログレスバー

サーチバー(インプットボックス)

リストビュー

C# 定期的にコマンド実行

定期的にtracertを実行したかったので。

C# TCPを使ったサンプル

C# UDPを使ったメッセージ交換

UDPを使ったテストプログラム。