ini Nginx + nodejs + socket.io websockets

Nginx + nodejs + socket.io websockets

site.conf
upstream some_upsteram_com {
    server 127.0.0.1:3000;
    keepalive 15;
}

server {
	listen 80;

	root /home/user/www/public;
	index index.html index.htm;

	access_log  /home/user/logs/site-access.log;
	error_log  /home/user/logs/site-error.log;

	server_name site.com www.site.com;

	large_client_header_buffers 8 32k;

	location / {
	    try_files $uri @nodejs;
	}


# Important! Serve client socket.io file as normal static file, e.g. /js/libs/socket.io/socket.io.min.js
	location /socket.io/ {
	    proxy_pass http://some_upsteram_com;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
	    proxy_redirect off;

	    proxy_buffers 8 32k;
	    proxy_buffer_size 64k;

	    proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	    proxy_set_header Host $http_host;
    	    proxy_set_header X-NginX-Proxy true;
	}

	location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
	    expires 30d;
	}

	location @nodejs {
	    proxy_pass http://some_upsteram_com;
	}

	location ~ /\. {
		deny all;
	}
}
nginx.conf
# Add to nginx.conf http section
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

ini MacType.ini

MacType.ini

MacType.ini
404: Not Found

ini tmux.conf

tmux_cheatsheet.markdown
# tmux cheatsheet

change binding of C-b

in ~/.tmux.conf:

    set -g prefix Ctrl-a

As configured in [my dotfiles](https://github.com/henrik/dotfiles/blob/master/tmux.conf).

start new:

    tmux

use 256 color

    tmux -2

start new with session name:

    tmux new -s myname

attach:

    tmux a  #  (or at, or attach)

attach to named:

    tmux a -t myname

list sessions:

    tmux ls

kill session:

    tmux kill-session -t myname

In tmux, hit the prefix `ctrl+b` and then:

## Sessions

    :new<CR>  new session
    s  list sessions
    $  name session

## Windows (tabs)

    c           new window
    ,           name window
    w           list windows
    f           find window
    &           kill window
    .           move window - prompted for a new number
    :movew<CR>  move window to the next unused number

## Panes (splits)

    %  horizontal split
    "  vertical split
    
    o  swap panes
    q  show pane numbers
    x  kill pane
    ⍽  space - toggle between layouts
    {  Swap the current pane with the previous pane.
    }  Swap the current pane with the next pane.

## Window/pane surgery

    :joinp -s :2<CR>  move window 2 into a new pane in the current window
    :joinp -t :1<CR>  move the current pane into a new pane in window 1

* [Move window to pane](http://unix.stackexchange.com/questions/14300/tmux-move-window-to-pane)
* [How to reorder windows](http://superuser.com/questions/343572/tmux-how-do-i-reorder-my-windows)

## Misc

    d  detach
    t  big clock
    ?  list shortcuts
    :  prompt

Resources:

* [cheat sheet](http://cheat.errtheblog.com/s/tmux/)

Notes:

* You can cmd+click URLs to open in iTerm.

TODO:

* Conf copy mode to use system clipboard. See PragProg book.
tmux.conf
set -g prefix C-a
setw -g mode-keys vi

unbind [
bind Escape copy-mode
unbind p
bind p paste-buffer
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

ini tmux配置文件。

tmux配置文件。

.tmux.conf
# Fix pbcopy http://superuser.com/questions/231130/unable-to-use-pbcopy-while-in-tmux-session
set-option -g default-command "reattach-to-user-namespace -l bash"

set -g base-index 1 # ctrl+a + 1  to switch to first tab
set-option -g renumber-windows on # renumber/pack windows into free slots when one is closed
new-session # Enforce a single tmux session
set -g history-limit 100001 # Large scroll buffer
bind-key r source-file ~/.tmux.conf # Quick reload conf

set-window-option -g automatic-rename on
set-option -g set-titles on

# - or \  will open a horizontal or vertical split pane
bind-key \ split-window -h
bind-key - split-window -v

# hjkl movement keys for panes
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R

# Vim style keys
set -g status-keys vi
setw -g mode-keys vi

# No idea...
setw -g monitor-activity on

# Recommendations from http://justinlilly.com/dotfiles/tmux.html
set-option -g status-utf8 on
set -g status-bg default
set -g status-fg default
set -g status-left-length 200
set -g status-left '#[fg=red,bright]#(whoami)#[fg=yellow]@#[fg=cyan,bright]#h'
set -g status-right '#[fg=yellow,bright]%Y-%m-%d %H:%M'
set -g window-status-current-attr bold
set -g status-justify centre

# Not sure why needed...
set -g status-interval 60
set -g status-left-length 30

# Join and split windows and panes http://superuser.com/questions/470130/tmux-prompt-to-select-window-for-join-pane-while-still-seeing-window-numbers-an
bind < split-window -h \; choose-window 'kill-pane ; join-pane -hs %%'
bind > break-pane -d

# No delay for escape key press
set -sg escape-time 0

# Shift arrow to switch windows
bind -n S-Left  previous-window
bind -n S-Right next-window

ini uncrustify_obj_c.cfg

uncrustify_obj_c.cfg
# Uncrustify 0.60
newlines                                 = auto
input_tab_size                           = 4
output_tab_size                          = 4
string_escape_char                       = 92
string_escape_char2                      = 0
tok_split_gte                            = false
utf8_bom                                 = ignore
utf8_byte                                = false
utf8_force                               = false
indent_columns                           = 4
indent_continue                          = 0
indent_with_tabs                         = 0
indent_cmt_with_tabs                     = false
indent_align_string                      = false
indent_xml_string                        = 0
indent_brace                             = 0
indent_braces                            = false
indent_braces_no_func                    = false
indent_braces_no_class                   = false
indent_braces_no_struct                  = false
indent_brace_parent                      = false
indent_namespace                         = false
indent_namespace_level                   = 0
indent_namespace_limit                   = 0
indent_extern                            = false
indent_class                             = false
indent_class_colon                       = false
indent_ctor_init_leading                 = 2
indent_ctor_init                         = 0
indent_else_if                           = false
indent_var_def_blk                       = 0
indent_var_def_cont                      = false
indent_func_def_force_col1               = false
indent_func_call_param                   = false
indent_func_def_param                    = false
indent_func_proto_param                  = false
indent_func_class_param                  = false
indent_func_ctor_var_param               = false
indent_template_param                    = false
indent_func_param_double                 = false
indent_func_const                        = 0
indent_func_throw                        = 0
indent_member                            = 0
indent_sing_line_comments                = 0
indent_relative_single_line_comments     = false
indent_switch_case                       = 4
indent_case_shift                        = 0
indent_case_brace                        = 0
indent_col1_comment                      = false
indent_label                             = 1
indent_access_spec                       = 1
indent_access_spec_body                  = false
indent_paren_nl                          = false
indent_paren_close                       = 0
indent_comma_paren                       = false
indent_bool_paren                        = false
indent_first_bool_expr                   = false
indent_square_nl                         = false
indent_preserve_sql                      = false
indent_align_assign                      = false
indent_oc_block                          = true
indent_oc_block_msg                      = 0
indent_oc_msg_colon                      = 4
sp_arith                                 = add
sp_assign                                = add
sp_cpp_lambda_assign                     = ignore
sp_cpp_lambda_paren                      = ignore
sp_assign_default                        = ignore
sp_before_assign                         = ignore
sp_after_assign                          = ignore
sp_enum_assign                           = ignore
sp_enum_before_assign                    = ignore
sp_enum_after_assign                     = ignore
sp_pp_concat                             = add
sp_pp_stringify                          = ignore
sp_before_pp_stringify                   = ignore
sp_bool                                  = add
sp_compare                               = add
sp_inside_paren                          = remove
sp_paren_paren                           = remove
sp_balance_nested_parens                 = false
sp_paren_brace                           = force
sp_before_ptr_star                       = force
sp_before_unnamed_ptr_star               = ignore
sp_between_ptr_star                      = remove
sp_after_ptr_star                        = remove
sp_after_ptr_star_func                   = ignore
sp_ptr_star_paren                        = ignore
sp_before_ptr_star_func                  = ignore
sp_before_byref                          = ignore
sp_before_unnamed_byref                  = ignore
sp_after_byref                           = ignore
sp_after_byref_func                      = ignore
sp_before_byref_func                     = ignore
sp_after_type                            = force
sp_before_template_paren                 = ignore
sp_template_angle                        = ignore
sp_before_angle                          = force
sp_inside_angle                          = remove
sp_after_angle                           = force
sp_angle_paren                           = ignore
sp_angle_word                            = ignore
sp_angle_shift                           = add
sp_permit_cpp11_shift                    = false
sp_before_sparen                         = force
sp_inside_sparen                         = remove
sp_inside_sparen_close                   = ignore
sp_inside_sparen_open                    = ignore
sp_after_sparen                          = add
sp_sparen_brace                          = add
sp_invariant_paren                       = ignore
sp_after_invariant_paren                 = ignore
sp_special_semi                          = ignore
sp_before_semi                           = remove
sp_before_semi_for                       = remove
sp_before_semi_for_empty                 = ignore
sp_after_semi                            = add
sp_after_semi_for                        = force
sp_after_semi_for_empty                  = ignore
sp_before_square                         = remove
sp_before_squares                        = remove
sp_inside_square                         = remove
sp_after_comma                           = add
sp_before_comma                          = remove
sp_paren_comma                           = force
sp_before_ellipsis                       = ignore
sp_after_class_colon                     = force
sp_before_class_colon                    = force
sp_before_case_colon                     = remove
sp_after_operator                        = ignore
sp_after_operator_sym                    = ignore
sp_after_cast                            = remove
sp_inside_paren_cast                     = remove
sp_cpp_cast_paren                        = ignore
sp_sizeof_paren                          = remove
sp_after_tag                             = ignore
sp_inside_braces_enum                    = ignore
sp_inside_braces_struct                  = ignore
sp_inside_braces                         = add
sp_inside_braces_empty                   = remove
sp_type_func                             = force
sp_func_proto_paren                      = remove
sp_func_def_paren                        = remove
sp_inside_fparens                        = remove
sp_inside_fparen                         = remove
sp_inside_tparen                         = remove
sp_after_tparen_close                    = ignore
sp_square_fparen                         = ignore
sp_fparen_brace                          = force
sp_func_call_paren                       = remove
sp_func_call_paren_empty                 = ignore
sp_func_call_user_paren                  = remove
sp_func_class_paren                      = ignore
sp_return_paren                          = ignore
sp_attribute_paren                       = ignore
sp_defined_paren                         = ignore
sp_throw_paren                           = ignore
sp_after_throw                           = ignore
sp_catch_paren                           = force
sp_version_paren                         = ignore
sp_scope_paren                           = ignore
sp_macro                                 = ignore
sp_macro_func                            = ignore
sp_else_brace                            = force
sp_brace_else                            = force
sp_brace_typedef                         = ignore
sp_catch_brace                           = force
sp_brace_catch                           = force
sp_finally_brace                         = force
sp_brace_finally                         = force
sp_try_brace                             = force
sp_getset_brace                          = ignore
sp_before_dc                             = ignore
sp_after_dc                              = ignore
sp_d_array_colon                         = ignore
sp_not                                   = remove
sp_inv                                   = remove
sp_addr                                  = remove
sp_member                                = remove
sp_deref                                 = remove
sp_sign                                  = remove
sp_incdec                                = remove
sp_before_nl_cont                        = add
sp_after_oc_scope                        = force
sp_after_oc_colon                        = remove
sp_before_oc_colon                       = remove
sp_after_oc_dict_colon                   = ignore
sp_before_oc_dict_colon                  = ignore
sp_after_send_oc_colon                   = remove
sp_before_send_oc_colon                  = remove
sp_after_oc_type                         = remove
sp_after_oc_return_type                  = remove
sp_after_oc_at_sel                       = remove
sp_after_oc_at_sel_parens                = force
sp_inside_oc_at_sel_parens               = remove
sp_before_oc_block_caret                 = force
sp_after_oc_block_caret                  = remove
sp_after_oc_msg_receiver                 = ignore
sp_after_oc_property                     = force
sp_cond_colon                            = force
sp_cond_question                         = force
sp_case_label                            = ignore
sp_range                                 = ignore
sp_after_for_colon                       = ignore
sp_before_for_colon                      = ignore
sp_extern_paren                          = ignore
sp_cmt_cpp_start                         = ignore
sp_endif_cmt                             = ignore
sp_after_new                             = ignore
sp_before_tr_emb_cmt                     = ignore
sp_num_before_tr_emb_cmt                 = 0
sp_annotation_paren                      = ignore
align_keep_tabs                          = false
align_with_tabs                          = false
align_on_tabstop                         = false
align_number_left                        = false
align_func_params                        = true
align_same_func_call_params              = false
align_var_def_span                       = 0
align_var_def_star_style                 = 0
align_var_def_amp_style                  = 0
align_var_def_thresh                     = 0
align_var_def_gap                        = 0
align_var_def_colon                      = false
align_var_def_attribute                  = false
align_var_def_inline                     = false
align_assign_span                        = 0
align_assign_thresh                      = 0
align_enum_equ_span                      = 4
align_enum_equ_thresh                    = 0
align_var_struct_span                    = 0
align_var_struct_thresh                  = 0
align_var_struct_gap                     = 0
align_struct_init_span                   = 0
align_typedef_gap                        = 0
align_typedef_span                       = 0
align_typedef_func                       = 0
align_typedef_star_style                 = 0
align_typedef_amp_style                  = 0
align_right_cmt_span                     = 0
align_right_cmt_mix                      = false
align_right_cmt_gap                      = 0
align_right_cmt_at_col                   = 0
align_func_proto_span                    = 0
align_func_proto_gap                     = 0
align_on_operator                        = false
align_mix_var_proto                      = false
align_single_line_func                   = false
align_single_line_brace                  = false
align_single_line_brace_gap              = 0
align_oc_msg_spec_span                   = 0
align_nl_cont                            = false
align_pp_define_together                 = false
align_pp_define_gap                      = 0
align_pp_define_span                     = 0
align_left_shift                         = true
align_oc_msg_colon_span                  = 1
align_oc_msg_colon_first                 = false
align_oc_decl_colon                      = true
nl_collapse_empty_body                   = false
nl_assign_leave_one_liners               = false
nl_class_leave_one_liners                = false
nl_enum_leave_one_liners                 = false
nl_getset_leave_one_liners               = false
nl_func_leave_one_liners                 = false
nl_if_leave_one_liners                   = false
nl_oc_msg_leave_one_liner                = false
nl_start_of_file                         = remove
nl_start_of_file_min                     = 0
nl_end_of_file                           = remove
nl_end_of_file_min                       = 0
nl_assign_brace                          = remove
nl_assign_square                         = ignore
nl_after_square_assign                   = ignore
nl_func_var_def_blk                      = 0
nl_typedef_blk_start                     = 0
nl_typedef_blk_end                       = 0
nl_typedef_blk_in                        = 0
nl_var_def_blk_start                     = 0
nl_var_def_blk_end                       = 0
nl_var_def_blk_in                        = 0
nl_fcall_brace                           = add
nl_enum_brace                            = add
nl_struct_brace                          = add
nl_union_brace                           = add
nl_if_brace                              = add
nl_brace_else                            = add
nl_elseif_brace                          = add
nl_else_brace                            = add
nl_else_if                               = remove
nl_brace_finally                         = add
nl_finally_brace                         = force
nl_try_brace                             = add
nl_getset_brace                          = add
nl_for_brace                             = add
nl_catch_brace                           = add
nl_brace_catch                           = add
nl_while_brace                           = add
nl_scope_brace                           = ignore
nl_unittest_brace                        = ignore
nl_version_brace                         = ignore
nl_using_brace                           = add
nl_brace_brace                           = add
nl_do_brace                              = add
nl_brace_while                           = add
nl_switch_brace                          = add
nl_multi_line_cond                       = false
nl_multi_line_define                     = false
nl_before_case                           = true
nl_before_throw                          = ignore
nl_after_case                            = false
nl_case_colon_brace                      = ignore
nl_namespace_brace                       = add
nl_template_class                        = add
nl_class_brace                           = add
nl_class_init_args                       = ignore
nl_func_type_name                        = remove
nl_func_type_name_class                  = ignore
nl_func_scope_name                       = ignore
nl_func_proto_type_name                  = remove
nl_func_paren                            = remove
nl_func_def_paren                        = ignore
nl_func_decl_start                       = remove
nl_func_def_start                        = ignore
nl_func_decl_start_single                = ignore
nl_func_def_start_single                 = ignore
nl_func_decl_args                        = ignore
nl_func_def_args                         = ignore
nl_func_decl_end                         = remove
nl_func_def_end                          = ignore
nl_func_decl_end_single                  = ignore
nl_func_def_end_single                   = ignore
nl_func_decl_empty                       = ignore
nl_func_def_empty                        = ignore
nl_oc_msg_args                           = false
nl_fdef_brace                            = force
nl_return_expr                           = remove
nl_after_semicolon                       = true
nl_after_brace_open                      = true
nl_after_brace_open_cmt                  = true
nl_after_vbrace_open                     = false
nl_after_vbrace_open_empty               = false
nl_after_brace_close                     = true
nl_after_vbrace_close                    = false
nl_brace_struct_var                      = ignore
nl_define_macro                          = false
nl_squeeze_ifdef                         = false
nl_before_if                             = ignore
nl_after_if                              = ignore
nl_before_for                            = ignore
nl_after_for                             = ignore
nl_before_while                          = ignore
nl_after_while                           = ignore
nl_before_switch                         = ignore
nl_after_switch                          = ignore
nl_before_do                             = ignore
nl_after_do                              = ignore
nl_ds_struct_enum_cmt                    = false
nl_ds_struct_enum_close_brace            = false
nl_class_colon                           = ignore
nl_create_if_one_liner                   = false
nl_create_for_one_liner                  = false
nl_create_while_one_liner                = false
pos_arith                                = ignore
pos_assign                               = ignore
pos_bool                                 = ignore
pos_compare                              = ignore
pos_conditional                          = ignore
pos_comma                                = ignore
pos_class_comma                          = ignore
pos_class_colon                          = ignore
code_width                               = 0
ls_for_split_full                        = false
ls_func_split_full                       = false
ls_code_width                            = false
nl_max                                   = 5
nl_after_func_proto                      = 1
nl_after_func_proto_group                = 2
nl_after_func_body                       = 2
nl_after_func_body_class                 = 0
nl_after_func_body_one_liner             = 0
nl_before_block_comment                  = 0
nl_before_c_comment                      = 0
nl_before_cpp_comment                    = 0
nl_after_multiline_comment               = false
nl_after_struct                          = 0
nl_after_class                           = 0
nl_before_access_spec                    = 0
nl_after_access_spec                     = 1
nl_comment_func_def                      = 0
nl_after_try_catch_finally               = 0
nl_around_cs_property                    = 0
nl_between_get_set                       = 0
nl_property_brace                        = ignore
eat_blanks_after_open_brace              = true
eat_blanks_before_close_brace            = true
nl_remove_extra_newlines                 = 0
nl_before_return                         = false
nl_after_return                          = false
nl_after_annotation                      = ignore
nl_between_annotation                    = ignore
mod_full_brace_do                        = add
mod_full_brace_for                       = add
mod_full_brace_function                  = add
mod_full_brace_if                        = add
mod_full_brace_if_chain                  = false
mod_full_brace_nl                        = 0
mod_full_brace_while                     = add
mod_full_brace_using                     = add
mod_paren_on_return                      = ignore
mod_pawn_semicolon                       = false
mod_full_paren_if_bool                   = false
mod_remove_extra_semicolon               = true
mod_add_long_function_closebrace_comment = 0
mod_add_long_switch_closebrace_comment   = 0
mod_add_long_ifdef_endif_comment         = 0
mod_add_long_ifdef_else_comment          = 0
mod_sort_import                          = false
mod_sort_using                           = false
mod_sort_include                         = false
mod_move_case_break                      = false
mod_case_brace                           = ignore
mod_remove_empty_return                  = false
cmt_width                                = 0
cmt_reflow_mode                          = 0
cmt_indent_multi                         = true
cmt_c_group                              = false
cmt_c_nl_start                           = false
cmt_c_nl_end                             = false
cmt_cpp_group                            = false
cmt_cpp_nl_start                         = false
cmt_cpp_nl_end                           = false
cmt_cpp_to_c                             = false
cmt_star_cont                            = false
cmt_sp_before_star_cont                  = 0
cmt_sp_after_star_cont                   = 0
cmt_multi_check_last                     = true
cmt_insert_file_header                   = ""
cmt_insert_file_footer                   = ""
cmt_insert_func_header                   = ""
cmt_insert_class_header                  = ""
cmt_insert_oc_msg_header                 = ""
cmt_insert_before_preproc                = false
pp_indent                                = ignore
pp_indent_at_level                       = false
pp_indent_count                          = 1
pp_space                                 = ignore
pp_space_count                           = 0
pp_indent_region                         = 0
pp_region_indent_code                    = false
pp_indent_if                             = 0
pp_if_indent_code                        = false
pp_define_at_level                       = false