読者です 読者をやめる 読者になる 読者になる

nginxを使ってローカルプロキシサーバをたてる(失敗)

nginx

インターネットルータ側でHTTP/HTTPSしか透過してないような環境でSSHしたかったので調べてみました。

タイトルにもあるように失敗です。
nginx ではHTTPSのフォワードプロキシに対応していないみたいです。
(HTTPのみなら成功したのですが。)

イメージはこんな感じ。

f:id:takyafumin:20150408113630p:plain

環境

  • Mac OS X 10.10.2
  • Homebrew 0.9.5
  • OpenSSH_6.2p2
  • nginx 1.6.2

Homebrewはインストール済みってことで。
「nginx」って何て読むんだろう。。。

手順

nginxのインストール

brewコマンドでインストールします。

$ brew install nginx

インストール先はココになるようです。

  • /usr/local/Cellar/nginx/1.6.2

設定ファイルはココです。brew使う人にとっては当たり前なのかなぁ。

  • /usr/local/etc/nginx

nginxのプロキシサーバ設定

Listenポート番号の変更

デフォルトは「8080」。
これは必要に応じて、って感じです。

  • /etc/local/etc/nginx/nginx.conf
http {

    server {
        #listen 8080
        listen 10080
プロキシ設定

すべてのリクエストをそのままフォワードするよう設定します。
HTTPS

$scheme:http / https $host:ホスト名 $request_uri:リクエストのuriロケーション

  • /etc/local/etc/nginx/nginx.conf
http {

    server {

        location / {
            proxy_pass $scheme://$host$request_uri;

OSネットワークでのプロキシ利用設定

[システム環境設定] > [ネットワーク] > 利用しているネットワークの[詳細]ボタン > [プロキシ]タブ

  • Webプロキシ(HTTP): チェック
  • Webプロキシサーバ: localhost, 10080

これでブラウザからのHTTPアクセスがnginx経由となるはず。
細かなHTTPヘッダ設定とかはしてません。あしからず。

プロキシ経由でのアクセスをやめたい場合は上記OSネットワークでのプロキシ利用設定を無くせばOK。

サーバ起動と停止

  • 起動コマンド
$ nginx
  • 停止コマンド
$ nginx -s stop