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; # } }}