1. 程式人生 > >CentOS7下Nginx的安裝配置

CentOS7下Nginx的安裝配置

一、安裝編譯工具及庫檔案:

 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

 環境要求

nginx是C語言開發,建議在linux上執行,本文章使用Centos7作為安裝環境。

安裝nginx需要先將官網下載的原始碼進行編譯,編譯依賴gcc環境,如果沒有gcc環境,需要安裝gcc:yum install gcc-c++

 

zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,所以需要在linux上安裝zlib庫。

 

OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。nginx不僅支援http協議,還支援https(即在ssl協議上傳輸http),所以需要在linux安裝openssl庫。

 

二、首先要安裝 PCRE:

PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的正則表示式庫。nginx的http模組使用pcre來解析正則表示式,所以需要在linux上安裝pcre庫。

注:pcre-devel是使用pcre開發的一個二次開發庫。nginx也需要此庫。

1、PCRE 作用是讓 Nginx 支援 Rewrite 功能。

cd /usr/local/src/      # 進入目錄

下載 PCRE 安裝包,下載地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2、解壓安裝包:

tar -zxvf pcre-8.35.tar.gz

3、進入安裝包目錄

cd pcre-8.35/

4、編譯安裝 

./configure

make && make install

5、檢視pcre版本

 pcre-config --version

三、安裝 Nginx:

1、下載 Nginx,下載地址:http://nginx.org/download/nginx-1.14.1.tar.gz

生產環境使用Stable version:最新穩定版,現在最新的版本是nginx-1.14.1

注意各版本的區別:Nginx官網提供了三個型別的版本

1、Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以說是開發版
2、Stable version:最新穩定版,生產環境上建議使用的版本
3、Legacy versions:遺留的老版本的穩定版

 

cd /usr/local/src/

wget http://nginx.org/download/nginx-1.14.1.tar.gz

2、解壓安裝包:

tar -zxvf nginx-1.14.1.tar.gz

3、進入安裝包目錄

cd nginx-1.14.1/

4、編譯安裝

./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35      # 編譯原始碼包程式碼,追加--prefix引數,指定稍後原始碼包程式的安裝路徑

make       # 生成二進位制安裝程式

make install      # 執行二進位制安裝程式

 5、檢視nginx版本

/usr/local/webserver/nginx/sbin/nginx -v

 到此,nginx安裝完成。

 

四、Nginx 配置:

建立 Nginx 執行使用的使用者 www:

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www

 

 配置nginx.conf ,將/usr/local/webserver/nginx/conf/nginx.conf替換為以下內容

mv nginx.conf nginx.conf-backup     # 備份nginx的配置檔案

vim nginx.conf     # 新建nginx的配置檔案,寫入以下內容

user www www;
worker_processes 2; #設定值和CPU核心數一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日誌位置和日誌級別
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';

#charset gb2312;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;
#下面是server虛擬主機的配置
server
{

listen 80;#監聽埠
server_name localhost;#域名
index index.html index.htm index.php;
root /usr/local/webserver/nginx/html;#站點目錄
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
# access_log off;
}
location ~ .*\.(js|css)?$
{
expires 15d;
# access_log off;
}
access_log off;
}

}

 

檢查配置檔案nginx.conf的正確性命令:

/usr/local/webserver/nginx/sbin/nginx -t

五、啟動 Nginx:

Nginx 啟動命令如下:

/usr/local/webserver/nginx/sbin/nginx
ps -ef | grep nginx

 

六、訪問Nginx:

從瀏覽器訪問我們配置的站點ip:

Nginx 其他命令

以下包含了 Nginx 常用的幾個命令:

 /usr/local/webserver/nginx/sbin/nginx -s reload      # 重新載入配置檔案

/usr/local/webserver/nginx/sbin/nginx -s reopen     # 重啟nginx

/usr/local/webserver/nginx/sbin/nginx -s stop         # 停止nginx