スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

CentOS+Nginxで80ポート以外ででアプリを起動

タイトル的にリバースプロキシ使ってどうこうって思った人すみません。
この記事ではNginxで80番以外のポートでウェブアプリ動かしてみる方法です。

1.なぜこうなったし
ローカルの自宅サーバーでとあるサイトの開発環境を整える必要がありましたが、うちのCentOSサーバーではすでにconcrete5とWPが動いてます。なるべくこっちに影響を出さない方向で開発用環境を整えたいというわけでポートを使い分けることを思い立ちました。
つまり普通にhttp://サーバーIP/concrete5 or wordpress http://サーバーIP:ポート番号 で開発用環境。

2.8080指定してドハマり
はい、代わりといえば8080、と思ってやっててドハマりしました。
結論から言うと、8080だと勝手にhttp-proxy になっちゃうので別のポートにする必要がありました。それも何らかのサービスと被らないように10000以上が望ましい。

$ curl http://192.168.0.2:8080
curl: (7) Failed connect to 192.168.0.2:8080; ホストへの経路がありません


なんだけど、サーバー上で
$ curl http://localhost:8080
するとちゃんとつながる。

3.Nginxの設定
/etc/nginx/sites-available/以下に設定ファイルを書いて/etc/nginx/nginx.confでincludeするようにしておく。
/etc/nginx/sites-enabled/以下に生きているアプリ(サイト)の設定へのシンボリックリンクをはっておく。

$ sudo ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/test.conf


みたいな感じ。この場合は/etc/nginx/sites-available/default.confへのリンクを/etc/nginx/sites-enabled/test.confという名前ではります。

/etc/nginx/nginx.confでsites-enabled/以下の設定ファイルがincludeされるように追記orコメント外す

include /etc/nginx/sites-enabled/*;



うちの環境では/var/www/以下のphp使うCMS用に/etc/nginx/sites-available/default.confを書き直してるんですが、これがデフォルトポート80、rootを/var/wwwに設定してあるので、今回はphp使わなくて/home以下においたアプリ動かしたいので別ファイルで新しく書きます。

server {
listen 10080 default_server;
server_name _;


listenを8080にしてたら別マシンから全くアクセスできなかった。

4.ポートを調べよう
netstatとかpingとかやってもよくわからなかった。たどり着いたのはnmap。

$ sudo yum install nmap
$ sudo nmap -p 1-10022 localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2015-01-28 14:30 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000029s latency).
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 10011 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
875/tcp open unknown
2049/tcp open nfs
3306/tcp open mysql
8011/tcp open unknown
8080/tcp open http-proxy


はい。8080がhttp-proxyになってました。ここでやっと今までの過ちに気づきました。
Nginxで8080指定すると勝手にhttp-proxyになって、この状態だと80に飛ばされる・・・のかな?だからファイルが見つかりませんとかアクセスできませんとか出るのかな?
で、iptablesで変えようとちょっと調べてみたけどめんどそう。ufwのぬるま湯で育った俺にはiptablesの細かい設定とか難しいんですー!
結局ちょっと触ったけどやっぱりうまく行かない。
ならNginxの方を設定で10080とかにしてsystem-config-firewall-tui で10080番開けばいいんじゃないの?
というわけで上記Nginxの設定(10080番)にして

$ sudo service nginx reload


指定しただけで開いてくれるかななんて淡い期待をしましたが

$ sudo nmap -p 1-10022 localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2015-01-28 14:40 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000031s latency).
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 10012 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
875/tcp open unknown
2049/tcp open nfs
3306/tcp open mysql
8011/tcp open unknown

Nmap done: 1 IP address (1 host up) scanned in 0.89 seconds


そらそうだよね。

5.system-config-firewall-tuiでポート追加
ファイアウォールは有効にして「カスタマイズ」。デフォルトの設定してあるサービスのところはすでに設定してあるので、そのまま「転送」。
「その他のポート」ってとこで10080 tcpを追加。Screenshot from 2015-01-28 15:36:02 
信頼したインターフェイス、マスカレーディングetcは何もせずに転送。

参考
iptablesルールを簡易設定できるツールを使ってみる
ファイアウォール設定による通信遮断
設定したら「転送」。最後に最初の画面に戻るので「OK」→「はい」(確認がしつこく出てくるけど、ssh無効にしちゃったりすると悲惨なことになるのでご注意ください、ってことだと思う)

6.結果
nmapしたら10080番が出てこない。

$ sudo nmap -p 1-10022 localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2015-01-28 14:40 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000031s latency).
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 10012 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
875/tcp open unknown
2049/tcp open nfs
3306/tcp open mysql
8011/tcp open unknown

Nmap done: 1 IP address (1 host up) scanned in 0.89 seconds



大丈夫かなと思ったけどリモート機から

$ curl http://192.168.0.2:10080


したら通った。
ブラウザでも表示可能になりました。
ちなみにnetstatするとちゃんとnginxが10080使ってるのがわかります。

$ sudo netstat -tanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1712/sshd
tcp 0 0 0.0.0.0:54742 0.0.0.0:* LISTEN 1650/rpc.mountd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2048/master
tcp 0 0 0.0.0.0:53499 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2110/smbd
tcp 0 0 0.0.0.0:10080 0.0.0.0:* LISTEN 16701/nginx
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:38817 0.0.0.0:* LISTEN 1650/rpc.mountd
tcp 0 0 0.0.0.0:46786 0.0.0.0:* LISTEN 1650/rpc.mountd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3454/mysqld
tcp 0 0 0.0.0.0:8011 0.0.0.0:* LISTEN 20992/plackup
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2110/smbd
tcp 0 0 0.0.0.0:875 0.0.0.0:* LISTEN 1645/rpc.rquotad
tcp 0 0 0.0.0.0:41743 0.0.0.0:* LISTEN 1468/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1372/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16701/nginx
tcp 0 0 192.168.0.2:22 192.168.0.7:55418 ESTABLISHED 20466/sshd
tcp 0 0 192.168.0.2:22 192.168.0.7:55507 ESTABLISHED 20531/sshd
tcp 0 0 192.168.0.2:22 192.168.0.7:55327 ESTABLISHED 20351/sshd
tcp 0 0 :::58257 :::* LISTEN 1468/rpc.statd
tcp 0 0 :::22 :::* LISTEN 1712/sshd
tcp 0 0 :::445 :::* LISTEN 2110/smbd
tcp 0 0 :::2049 :::* LISTEN -
tcp 0 0 :::52388 :::* LISTEN 1650/rpc.mountd
tcp 0 0 :::59590 :::* LISTEN 1650/rpc.mountd
tcp 0 0 :::34343 :::* LISTEN 1650/rpc.mountd
tcp 0 0 :::139 :::* LISTEN 2110/smbd
tcp 0 0 :::53999 :::* LISTEN -
tcp 0 0 :::111 :::* LISTEN 1372/rpcbind



本番とは別に開発環境とかを別ポートで立ち上げといたりするのにはよさそう。
ともあれこれでNginxで80番ポート以外にも同時に別アプリ立ち上げることは出来ました。

教訓:10000以下は気軽に使うな。
関連記事
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

コメントの投稿

管理者にだけ表示を許可する
ブログ内検索

カスタム検索

フリーエリア

クリックで救える命がある。

レンタルサーバー

さくらのマネージドサーバ
さくらインターネットのVPS
ConoHaのVPS
WebARENA VPSクラウド
99円レンタルサーバー
【CloudCore VPS】
GMOクラウドのレンタルサーバー
転送量無制限 ABLENET
@WAPPYレンタルサーバー
SPPDレンタルサーバー

カテゴリー+月別アーカイブ

 

アクセスカウンター

現在の閲覧者数:

プロフィール

Author:tmin
PCヲタ。ライト2ちゃんねら。
スロット好きのギャンブラー。(元
むしろ人生がギャンブルだが目下のところ負けっぱなし。
座右の銘は「結果オーライ」。故に基本適当。
トラブルもまた楽しみのひとつ

コメント、トラバ、相互リンク歓迎。お気軽にどうぞ。
当ブログについて
Twitterでこっちとあっちの更新情報流すことにしてみます。
http://twitter.com/t_min
Project Mikunchu♪Wikiできました。
Mikunchu200x40.png


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。