Nginx with SSH Proxy on MAC

Nginx with SSH Proxy on MAC

1. Some Tips to Enable Nginx on Proxy
Reload the Configuration
>sudo sbin/nginx -s reload

Test the configuration
>sudo sbin/nginx -t

Help to redirect the Header Information
location / {
           proxy_pass http://sillycat;
           proxy_redirect              off;
           proxy_set_header            Host $host;
           proxy_set_header            X-Real-IP $remote_addr;
           proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
           client_max_body_size        10m;
           client_body_buffer_size     128k;
           proxy_connect_timeout       90;
           proxy_send_timeout          90;
           proxy_read_timeout          90;
           proxy_buffer_size           4k;
           proxy_buffers               4 32k;
           proxy_busy_buffers_size     64k;
           proxy_temp_file_write_size  64k;
}

Nginx will act as a proxy. It can cache all static file and other files.

2. Prepare Self Signed SSL certificate.
>pwd
/opt/nginx/conf

>mkdir ssl
>cd ssl

>openssl genrsa -des3 -out nginx.in.key 1024
Type the password and generate that file

To create a CSR(Certificate Signing Request)
>openssl req -new -key nginx.in.key -out nginx.in.csr 

Answer the right question.

Remove the passphrase
>cp nginx.in.key nginx.in.key.bak
>openssl rsa -in nginx.in.key.bak -out nginx.in.key

>openssl x509 -req -days 365 -in nginx.in.csr -signkey nginx.in.key -out nginx.in.crt

3. Configure Nginx As SSL Reverse Proxy
>vi conf/nginx.conf
listen       443;
ssl          on;

        ssl_certificate        ssl/nginx.in.crt;
        ssl_certificate_key    ssl/nginx.in.key;

        ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers RC4:HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        keepalive_timeout    60;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;

>sudo sbin/nginx -t

Error Message:
nginx: [emerg] unknown directive "ssl" in /Users/carl/tool/nginx-1.5.3/conf/nginx.conf:44
nginx: configuration file /Users/carl/tool/nginx-1.5.3/conf/nginx.conf test failed

Solution:
>cd /Users/carl/data/nginx-1.5.6
--with-http_ssl_module

>./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/Users/carl/tool/nginx-1.5.6

Error Message:
./configure: error: C compiler cc is not found 

Solution:
Install Command Line Tools for Xcode from here https://developer.apple.com/downloads/index.action?name=for%20Xcode%20- 
The file named command_line_tools_os_x_mountain_lion_for_xcode__september_2013.dmg, install it.

>gcc -v
gcc is there and fine now.

>./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/Users/carl/tool/nginx-1.5.6
>make
>make install

>sudo ln -s /Users/carl/tool/nginx-1.5.6 /opt/nginx-1.5.6
>sudo ln -s /opt/nginx-1.5.6 /opt/nginx

>sudo sbin/nginx -t
nginx: the configuration file /Users/carl/tool/nginx-1.5.6/conf/nginx.conf syntax is ok
nginx: configuration file /Users/carl/tool/nginx-1.5.6/conf/nginx.conf test is successful

>sudo sbin/nginx  //  sudo sbin/nginx -s reload

It is working fine.

References:
http://www.cyberciti.biz/faq/howto-linux-unix-setup-nginx-ssl-proxy/

http://www.mkyong.com/mac/how-to-install-gcc-compiler-on-mac-os-x/

相关推荐