天天看點

nginx編譯安裝和一鍵安裝腳本

編譯安裝nginx

1.安裝依賴包

<code>yum -y </code><code>install</code> <code>openssl openssl-devel zlibzlib-devel gcc gcc-c++</code>

2.安裝pcre

安裝nginx所需要的pcre庫(為了使nginx支援http rewrite子產品)

<code>mkdir</code> <code>-p</code><code>/home/darren/tools</code>

<code>cd</code> <code>/home/darren/tools/</code>

<code>wget </code><code>ftp</code><code>:</code><code>//ftp</code><code>.csx.cam.ac.uk</code><code>/pub/software/programming/pcre/pcre-8</code><code>.37.</code><code>tar</code><code>.gz</code>

<code>tar</code> <code>zxf pcre-8.37.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>pcre-8.37</code>

<code>.</code><code>/configure</code>

<code>make</code> <code>&amp;&amp; makeinstall</code>

<code>cd</code> <code>..</code>

<code>如果安裝完以後需要重新安裝pcre,則需要</code>

<code>rm</code> <code>-rf</code><code>/usr/local/share/man/man3/pcre</code><code>*</code>

3.安裝nginx

建立nginx使用者

<code>groupaddnginx</code>

<code>useradd</code> <code>nginx-s </code><code>/sbin/nologin</code> <code>-M</code>

<code>wget http:</code><code>//nginx</code><code>.org</code><code>/download/nginx-1</code><code>.8.1.</code><code>tar</code><code>.gz</code>

<code>wgethttp:</code><code>//nginx</code><code>.org</code><code>/download/nginx-1</code><code>.2.6.</code><code>tar</code><code>.gz</code>

<code>tarzxf nginx-1.8.1.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>nginx-1.8.1</code>

<code>.</code><code>/configure</code> <code>--user=nginx --group=nginx --prefix=</code><code>/usr/local/nginx</code> <code>--with-http_stub_status_module --with-http_ssl_module</code>

檢查nginx安裝

<code>/usr/local/nginx/sbin/nginx</code> <code>-</code><code>v</code>

<code>#提示錯誤:/usr/local/nginx/sbin/nginx: error while loading shared libraries:libpcre.so.1: cannot open shared object file: No such file ordirectory</code>

<code>yum </code><code>install</code> <code>pcre -y 則不會出現這種錯誤</code>

<code>find</code> <code>/-name</code> <code>libpcre.so.1</code>

<code>/usr/local/lib/libpcre</code><code>.so.1</code>

<code>echo</code> <code>'/usr/local/lib/'</code><code>&gt;&gt;</code><code>/etc/ld</code><code>.so.conf</code>

<code>ldconfig</code>

檢查文法

<code>/usr/local/nginx/sbin/nginx</code> <code>-t</code>

啟動nginx服務

<code>/usr/local/nginx/sbin/nginx</code>

<code>netstat</code> <code>-lnt</code>

浏覽器中輸入10.1.1.1測試

附一個一鍵安裝腳本:

<code>#!/bin/sh</code>

<code>#for one install nginx</code>

<code>#for wangjiadongge</code>

<code> </code> 

<code>#install centos source</code>

<code>rpm -Uvh http:</code><code>//mirrors</code><code>.yun-idc.com</code><code>/epel/6Server/x86_64/epel-release-6-8</code><code>.noarch.rpm</code>

<code>#install plugin</code>

<code>yum </code><code>install</code> <code>gcc gcc-c++ openssl-devel pcre-devel zlib-devel -y</code>

<code>#create user and group</code>

<code>groupadd nginx </code>

<code>useradd</code> <code>nginx -g nginx -s </code><code>/sbin/nologin</code> <code>-M</code>

<code>#cd /tmp/</code>

<code>[ -d </code><code>/tmp/download</code> <code>] || </code><code>mkdir</code> <code>-p </code><code>/tmp/download</code>

<code>cd</code> <code>/tmp/download/</code>

<code>#wget nginx from www.nginx.org</code>

<code>wget http:</code><code>//nginx</code><code>.org</code><code>/download/nginx-1</code><code>.8.1.</code><code>tar</code><code>.gz </code>

<code>tar</code> <code>zxvf nginx-1.8.1.</code><code>tar</code><code>.gz</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/nginx</code> <code>--user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

<code>chown</code> <code>-R nginx.nginx </code><code>/usr/local/nginx/</code>

<code>echo</code> <code>"/usr/local/nginx/sbin/nginx"</code> <code>&gt;&gt;</code><code>/etc/rc</code><code>.</code><code>local</code> 

<code>#end</code>

#nginx負載均衡腳本

<code>mv</code> <code>/usr/local/nginx/conf/nginx</code><code>.conf </code><code>/usr/local/nginx/conf/nginx</code><code>.conf.bak</code>

<code>echo</code> <code>"</code>

<code>user  nginx;</code>

<code>worker_processes  4;</code>

<code>events {</code>

<code>    </code><code>use epoll;</code>

<code>    </code><code>worker_connections  10240;</code>

<code>}</code>

<code>http {</code>

<code>    </code><code>include       mime.types;</code>

<code>    </code><code>default_type  application</code><code>/octet-stream</code><code>;</code>

<code>    </code><code>log_format  main  </code><code>'$remote_addr - $remote_user [$time_local] "$request" '</code>

<code>                      </code><code>'$status $body_bytes_sent "$http_referer" '</code>

<code>                      </code><code>'"$http_user_agent" "$http_x_forwarded_for"'</code><code>;</code>

<code>    </code><code>access_log  logs</code><code>/access</code><code>.log  main;</code>

<code>    </code><code>sendfile        on;  </code>

<code>    </code><code>keepalive_timeout  120;</code>

<code>    </code><code>include conf.d/*.conf;</code>

<code>" &gt;&gt;</code><code>/usr/local/nginx/conf/nginx</code><code>.conf</code>

<code>mkdir</code> <code>/usr/local/nginx/conf/conf</code><code>.d</code>

<code>server {</code>

<code>        </code><code>listen       80;</code>

<code>        </code><code>server_name  login.xiaodongge.com;</code>

<code>        </code><code>access_log   logs</code><code>/host</code><code>.access.log  main;</code>

<code>        </code><code>location / {</code>

<code>            </code><code>proxy_pass http:</code><code>//loginserver</code><code>;</code>

<code>        </code><code>}</code>

<code>upstream loginserver {</code>

<code>        </code><code>server 10.86.10.21:8300;</code>

<code>        </code><code>server 10.86.10.22:8300;</code>

<code>        </code><code>server 10.86.10.23:8300;</code>

<code>    </code><code>}</code>

解釋:nginx做負載均衡預設是輪詢負載,下面逐一來看:

<code>#預設的負載方式,輪詢</code>

<code>    </code><code>upstream myapp1 {</code>

<code>        </code><code>server srv1.example.com;</code>

<code>        </code><code>server srv2.example.com;</code>

<code>        </code><code>server srv3.example.com;</code>

<code>    </code><code>server {</code>

<code>        </code><code>listen 80;</code>

<code>            </code><code>proxy_pass http:</code><code>//myapp1</code><code>;</code>

<code>#最小連接配接數,哪台伺服器連接配接的最少就向哪台伺服器上負載</code>

<code>upstream myapp1 {</code>

<code>        </code><code>least_conn;</code>

<code>#ip hash如果一個連接配接建立,就會始終和這台伺服器連接配接</code>

<code>    </code><code>ip_hash;</code>

<code>    </code><code>server srv1.example.com;</code>

<code>    </code><code>server srv2.example.com;</code>

<code>    </code><code>server srv3.example.com;</code>

<code>#權重,自定義設定哪台伺服器負載的多</code>

<code>  </code><code>upstream myapp1 {</code>

<code>        </code><code>server srv1.example.com weight=3;</code>

版權聲明:原創作品,謝絕轉載。否則将追究法律責任

本文轉自 王家東哥 51CTO部落格,原文連結:http://blog.51cto.com/xiaodongge/1919496

繼續閱讀