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项目关闭

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