Nginx安裝(zhuan)

http://www.nginx.cn/installjavascript

************************php

 

nginx可使用各平臺的默認包來安裝,本文是介紹使用源碼編譯安裝,包括具體的編譯參數信息。css

正式開始前,編譯環境gcc g++ 開發庫之類的須要提早裝好,這裏默認你已經裝好。html

ububtu平臺編譯環境可使用如下指令java

centos平臺編譯環境使用以下指令node

安裝make:nginx

安裝g++:c++

下面正式開始
---------------------------------------------------------------------------
通常咱們都須要先裝pcre, zlib,前者爲了重寫rewrite,後者爲了gzip壓縮。
1.選定源碼目錄
能夠是任何目錄,本文選定的是/usr/local/srcweb

2.安裝PCRE庫
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下載最新的 PCRE 源碼包,使用下面命令下載編譯和安裝 PCRE 包:正則表達式

3.安裝zlib庫
http://zlib.net/zlib-1.2.8.tar.gz 下載最新的 zlib 源碼包,使用下面命令下載編譯和安裝 zlib包:

4.安裝ssl(某些vps默認沒裝ssl)

5.安裝nginx

Nginx 通常有兩個版本,分別是穩定版和開發版,您能夠根據您的目的來選擇這兩個版本的其中一個,下面是把 Nginx 安裝到 /usr/local/nginx 目錄下的詳細步驟:

--with-pcre=/usr/src/pcre-8.34 指的是pcre-8.34 的源碼路徑。
--with-zlib=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的源碼路徑。

安裝成功後 /usr/local/nginx 目錄下以下

6.啓動
確保系統的 80 端口沒被其餘程序佔用,運行/usr/local/nginx/nginx 命令來啓動 Nginx,

若是查不到結果後執行,有結果則忽略此步驟(ubuntu下必須用sudo啓動,否則只能在前臺運行)

打開瀏覽器訪問此機器的 IP,若是瀏覽器出現 Welcome to nginx! 則表示 Nginx 已經安裝並運行成功。

-----------------------------------------------------
到這裏nginx就安裝完成了,若是隻是處理靜態html就不用繼續安裝了

若是你須要處理php腳本的話,還須要安裝php-fpm

下面安裝排錯

附:可能遇到的錯誤和一些幫助信息

1.1編譯pcre錯誤

解決辦法:安裝g++,別忘了從新configure

1.2 make出錯

按照第4步的安裝方法或
ubuntu下

centos下

2.nginx編譯選項

make是用來編譯的,它從Makefile中讀取指令,而後編譯。

make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。

configure命令是用來檢測你的安裝平臺的目標特徵的。它定義了系統的各個方面,包括nginx的被容許使用的鏈接處理的方法,好比它會檢測你是否是有CC或GCC,並非須要CC或GCC,它是個shell腳本,執行結束時,它會建立一個Makefile文件。nginx的configure命令支持如下參數:

  • --prefix=path    定義一個目錄,存放服務器上的文件 ,也就是nginx的安裝目錄。默認使用 /usr/local/nginx。
  • --sbin-path=path 設置nginx的可執行文件的路徑,默認爲  prefix/sbin/nginx.
  • --conf-path=path  設置在nginx.conf配置文件的路徑。nginx容許使用不一樣的配置文件啓動,經過命令行中的-c選項。默認爲prefix/conf/nginx.conf.
  • --pid-path=path  設置nginx.pid文件,將存儲的主進程的進程號。安裝完成後,能夠隨時改變的文件名 , 在nginx.conf配置文件中使用 PID指令。默認狀況下,文件名 爲prefix/logs/nginx.pid.
  • --error-log-path=path 設置主錯誤,警告,和診斷文件的名稱。安裝完成後,能夠隨時改變的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默認狀況下,文件名 爲prefix/logs/error.log.
  • --http-log-path=path  設置主請求的HTTP服務器的日誌文件的名稱。安裝完成後,能夠隨時改變的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默認狀況下,文件名 爲prefix/logs/access.log.
  • --user=name  設置nginx工做進程的用戶。安裝完成後,能夠隨時更改的名稱在nginx.conf配置文件中 使用的 user指令。默認的用戶名是nobody。
  • --group=name  設置nginx工做進程的用戶組。安裝完成後,能夠隨時更改的名稱在nginx.conf配置文件中 使用的 user指令。默認的爲非特權用戶。
  • --with-select_module --without-select_module 啓用或禁用構建一個模塊來容許服務器使用select()方法。該模塊將自動創建,若是平臺不支持的kqueue,epoll,rtsig或/dev/poll。
  • --with-poll_module --without-poll_module 啓用或禁用構建一個模塊來容許服務器使用poll()方法。該模塊將自動創建,若是平臺不支持的kqueue,epoll,rtsig或/dev/poll。
  • --without-http_gzip_module — 不編譯壓縮的HTTP服務器的響應模塊。編譯並運行此模塊須要zlib庫。
  • --without-http_rewrite_module  不編譯重寫模塊。編譯並運行此模塊須要PCRE庫支持。
  • --without-http_proxy_module — 不編譯http_proxy模塊。
  • --with-http_ssl_module — 使用https協議模塊。默認狀況下,該模塊沒有被構建。創建並運行此模塊的OpenSSL庫是必需的。
  • --with-pcre=path — 設置PCRE庫的源碼路徑。PCRE庫的源碼(版本4.4 - 8.30)須要從PCRE網站下載並解壓。其他的工做是Nginx的./ configure和make來完成。正則表達式使用在location指令和 ngx_http_rewrite_module 模塊中。
  • --with-pcre-jit —編譯PCRE包含「just-in-time compilation」(1.1.12中, pcre_jit指令)。
  • --with-zlib=path —設置的zlib庫的源碼路徑。要下載從 zlib(版本1.1.3 - 1.2.5)的並解壓。其他的工做是Nginx的./ configure和make完成。ngx_http_gzip_module模塊須要使用zlib 。
  • --with-cc-opt=parameters — 設置額外的參數將被添加到CFLAGS變量。例如,當你在FreeBSD上使用PCRE庫時須要使用:--with-cc-opt="-I /usr/local/include。.如須要須要增長 select()支持的文件數量:--with-cc-opt="-D FD_SETSIZE=2048".
  • --with-ld-opt=parameters —設置附加的參數,將用於在連接期間。例如,當在FreeBSD下使用該系統的PCRE庫,應指定:--with-ld-opt="-L /usr/local/lib".

典型實例(下面爲了展現須要寫在多行,執行時內容須要在同一行)

1
2
3
4
5
6
7
./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-4.4
    --with-zlib=../zlib-1.1.3
 
 

********************************

附配置文件

[root@localhost nginx-1.10.2]# yum install gcc.x86_64
[root@localhost nginx-1.10.2]# yum install gcc-c++.x86_64

[root@localhost nginx-1.10.2]# yum install automake.noarch

[root@localhost nginx-1.10.2]# yum install  libtool.x86_64

[root@localhost nginx-1.10.2]# yum install libtool-ltdl.x86_64

[root@localhost nginx-1.10.2]# yum install libtool-ltdl-devel.x86_64

[root@localhost nginx-1.10.2]# yum install pcre-devel.x86_64

[root@localhost nginx-1.10.2]# yum install pcre-static.x86_64

[root@localhost nginx-1.10.2]# yum install zlib-static.x86_64

[root@localhost nginx-1.10.2]# yum install openssl.x86_64

[root@localhost nginx-1.10.2]# yum install openssl-devel.x86_64

[root@localhost nginx-1.10.2]# yum install openssl-static.x86_64


[root@localhost nginx-1.10.2]# ./configure --user=www --group=www --prefix=/usr/local/nginx
--with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module

********************

附nginx配置文件

user  www www;worker_processes auto;worker_rlimit_nofile 65535;error_log  logs/error.log;pid        /var/run/nginx.pid;events {    use epoll;    worker_connections  51200;}http{  include       mime.types;  default_type  application/octet-stream;  server_names_hash_bucket_size 128;  client_header_buffer_size 32k;  large_client_header_buffers 4 32k;  client_max_body_size 100m;  sendfile on;  tcp_nopush     on;  keepalive_timeout 60;  tcp_nodelay on;  fastcgi_connect_timeout 600;  fastcgi_send_timeout 600;  fastcgi_read_timeout 600;  fastcgi_buffer_size 64k;  fastcgi_buffers 16 256k;  fastcgi_busy_buffers_size 256k;  fastcgi_temp_file_write_size 256k;  fastcgi_intercept_errors on;  gzip on;  gzip_min_length  1k;  gzip_buffers     4 16k;  gzip_http_version 1.1;  gzip_comp_level 4;  gzip_types       text/plain application/x-javascript text/css application/xml;  gzip_vary on;  log_format log.1 '$http_X_ClientIP - $remote_user [$time_local] "$request" '                    '$status $body_bytes_sent "$http_referer" '                    '"$http_user_agent" "$http_x_forwarded_for" "$request_time"'                    '"$remote_addr"'; log_format  access_log  '$remote_addr - $remote_user [$time_local] "$request" '        '$status $body_bytes_sent "$http_referer" '        '"$http_user_agent" $http_x_forwarded_for';  server  {    listen       80;    charset utf-8;    server_name  server1.english.gov.cn server1.english.bbc.org;    index index.html index.htm index.php index.shtml;    root  /export/htdocs/server1;    access_log  logs/server1.english.gov.cn.log log.1;    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/local/nginx/html;    }    location ~ (/\.svn/|/include/config/|/lib/|/cdnup/) {                deny all;    }   # location ~ .*\.(php|php5|php4|shtml)?$ {   # root /export/htdocs;   # try_files $uri =404;   # fastcgi_pass unix:/tmp/php-cgi.sock;   # fastcgi_index index.php;   # include fastcgi.conf;   #include pathinfo.conf;   #  }    }  server  {    listen       80;    charset utf-8;    server_name  server.gov.cn server.bbc.org;    index index.html index.htm index.php index.shtml;    root  /export/htdocs/server;    access_log  server.gov.cn.log log.1;    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/local/nginx/html;    }    location ~ (/\.svn/|/include/config/|/lib/|/cdnup/) {                deny all;    }   # location ~ .*\.(php|php5|php4|shtml)?$ {   # root /export/htdocs;   # try_files $uri =404;   # fastcgi_pass unix:/tmp/php-cgi.sock;   # fastcgi_index index.php;   # include fastcgi.conf;   #include pathinfo.conf;   #  }    }}

相關文章
相關標籤/搜索