Nginx在ubuntu16.04中安裝以及基本配置 學習筆記

安裝參考https://www.jianshu.com/p/bd74e10b469d/

安裝gcc g++的依賴庫

apt-get install build-essential
apt-get install libtool

安裝pcre依賴庫

apt-get update
apt-get install libpcre3 libpcre3-dev

安裝zlib依賴庫

// 注意lib後面是阿拉伯數字1,不是字母l
apt-get install zlib1g-dev

安裝ssl依賴庫

apt-get install openssl

安裝nginx

// 下載自己需要的版本
wget http://nginx.org/download/nginx-1.11.3.tar.gz
// 解壓
tar -zxvf nginx-1.11.3.tar.gz
// 進入nginx目錄
cd nginx-1.11.3
// 配置
./configure --prefix=/usr/local/nginx
// 編輯nginx
make
// 安裝nginx
make install
// 啓動nginx
/usr/local/nginx/sbin/nginx
// 查看nginx進程
ps -ef|grep nginx
// 停止nginx
/usr/local/nginx/sbin/nginx -s stop
// 查看nginx版本
/usr/local/nginx/sbin/nginx -v

nginx 相關命令   -s reload (重啓)    -s 是平滑的操作的意思     除了啓動  重啓和停止最好帶上-s
          start   /  -s stop      啓動/停止

 

現在介紹nginx重點部分nginx.conf,配置參數詳解 參考https://blog.csdn.net/wangbin_0729/article/details/82109693


#user  nobody;
worker_processes  3;    #nginx使用的進程數,一般1個就夠了,可以設置成和cpu數量一樣
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
#stream {                            #這個配置是用於轉發mysql的請求的,好像低版本nginx不支持
#    upstream mysql {
#        server 192.168.0.1:3306;;
#    }
#    server {
#        listen                9966;
#        
#        # 請求拋給 stream_backend 組
#        proxy_pass            mysql;
#   }
#} 
#轉發http請求
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"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on;      #開啓高效文件傳輸
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    #gzip  on;
 
 
    upstream aaa{      #端口轉發
        server 127.0.0.1:8080;
    }
   upstream bbb{
        server 127.0.0.1:8081;
    }
 
    upstream ccc{
        server 127.0.0.1:8082;
    }
 
#aaa端口轉發
server {
    listen       80;
    server_name  aaa.com;
    access_log logs/aaa.log;     #日誌文件
    error_log logs/aaa.error;
    
    #將所有請求轉發給demo_pool池的應用處理
    location / {
        proxy_set_header Host 127.0.0.1;    #host 最好寫成和server_name一樣,
#不然如果頁面重定向會使用127.0.0.1做爲請求頭會訪問http://127.0.0.1/xxx,導致404
        #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://aaa;   #轉發至上面配置好的upstream
        tcp_nopush on;
        tcp_nodelay on;
    }
}
#bbb端口轉發
server {
    listen       80;
    server_name  bbb.com;
    server_name  ddd.com;
    access_log logs/bbb.log;
    error_log logs/bbb.error;
    
    #將所有請求轉發給demo_pool池的應用處理
    location / {
        proxy_set_header Host 127.0.0.1;
        #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://bbb;
        tcp_nopush on;
        tcp_nodelay on;
    }
}
#ccc端口轉發
server {
    listen       80;
    server_name  ccc.com;
    access_log logs/ccc.log;
    error_log logs/ccc.error;
    
    #將所有請求轉發給demo_pool池的應用處理
    location / {
        proxy_set_header Host 127.0.0.1;
        proxy_pass http://ccc;
    }
}
#靜態資源映射
server {
    listen      80;
    server_name eee.com;
    #access_log logs/eee.log#
    #error_log logs/eee.error;

    # 精細化 配置相關靜態資源參數,優化訪問靜態資源文件
    location ~ .*\.(gif|jpg|jpeg|png)$ {
        expires 24h;  
        root /usr/share/images;#指定圖片存放路徑  
        proxy_store on;  
        #proxy_temp_path    D:/tools/nginx/2/image1/;#圖片訪問路徑  
        proxy_redirect     off;  
        proxy_set_header    Host 127.0.0.1;  
        client_max_body_size  10m;
        client_body_buffer_size 1280k;  
        proxy_connect_timeout  900;  
        proxy_send_timeout   900;  
        proxy_read_timeout   900;  
        proxy_buffer_size    40k;  
        proxy_buffers      40 320k;  
        proxy_busy_buffers_size 640k;  
        proxy_temp_file_write_size 640k;  
        #if ( !-e $request_filename)  
        #  {  
        #     proxy_pass http://127.0.0.1;#默認80端口  
        #  } 
    }
}
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
 
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
 
 
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;
 
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
 
    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;
 
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;
 
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
 
}

nginx功能強大,併發高達50000,相對apache使用更少的資源。NGINX的高效性還表現在可以不停機的更新項目,如上面配置所示 aaa.com域名指向8080端口,現在需要更新8080項目,只需要重開一個更新的項目如端口8088,然後將nginx.conf中的配置端口轉指向改變再使用 nginx -s reload就可以實現平滑過渡。待穩定後可以將原8080項目關閉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章