nginx安装还是很简单的,虽然网上有很多的安装教程,我也看过一些,但是很多写的比较乱,比较难懂,所以就自己写一篇,希望可以帮助到大家

先说环境吧,本人用的Centos7 x86_64 同样也是现在服务器使用最多的linux发行版本,当然centos6,跟7还是有区别的,这样主要说7

第一步:先安装nginx所需要的依赖包直接yum安装就可以   

 yum -y install openssl zlib zlib-devel pcre pcre-devel

第二步:下载nginx安装包,我这里是指定了下载目录,如果不想下载在这个目下,只需要        把/root/Download改成你想要的目录就可以了,这个是nginx1.8.1版本,如需其他版本换成你想要的链接就可以了

 wget -c -P /root/Download  http://nginx.org/download/nginx-1.8.1.tar.gz

第三步:解压,编译安装

cd /root/Download
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx
make&&make install 这些命令输完后就算安装完了,现在nginx也是可以直接启动的
cd /usr/local/nginx目录,然后./sbin/nginx  -c  ./conf/nginx.conf启动,打开浏览器输入127.0.0.1就可以看到nginx的界面了

 wKiom1i0AEvjc7Q9AAFelckK4iM198.png-wh_50

下面是一些nginx的反向代理和动静分离的配置信息,nginx里面#代表的就是注释。修改完配置文件后直接./nginx -t 检查有没有错,如果没报错,说明是可以通过的,直接./nginx -s reload平滑重启nginx就可以了

#user  nobody;
worker_processes  1;#这里的1代表的服务器是单,相应的双核就写2

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


http {
    include       mime.types;
    default_type  application/octet-stream;
server_names_hash_bucket_size 128;  
    client_header_buffer_size 128k;  
large_client_header_buffers 8 128k;  
client_max_body_size 8m; 
server_tokens off;    #屏蔽nginx版本信息
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  10;
client_header_timeout 10;
    client_body_timeout 10;
    reset_timedout_connection on;
    send_timeout 10;
fastcgi_buffers 8 128k;
    gzip  on;  #开启压缩
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

upstream fuzai {  #这里的fuzai相当于一个别名吧。名字可以随便起的
        server 192.168.0.1:8080 max_fails=3 weight=1 fail_timeout=60s;#weight是权重,权重越大被分配到几率就越大
        server 192.168.0.2:8080 max_fails=3 weight=1 fail_timeout=60s;#这里以三台为例。后端都是tomcat,写上相应的tomcat地址就可以了
        server 192.168.0.3:8080 max_fails=3 weight=1 fail_timeout=60s;
    }
    
    server {
        #禁止通过ip访问
   listen  80;
        server_name _;
   #server_name weihu.com;如果有页面要设置维护页面,把这里写成相应的网站
#拦截所有以便于重写
           location ~ \.* {
              root assets;   #这里指的html文件所存放的目录
              access_log on;
              expires 3d;
  
           }
  #rewrite ^(.*)$  /weihu.html break;  #这里'/'代表的是assets文件夹,因为我们上面定义了root为assets

        return 500;   #这里代表的是没有通过下面server_name的域名返回500错误。
   }
   
    server {
        listen       80;
        server_name  test.com;  #这里写你自己的域名的就可以,如果是多个就写多个
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
       
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;      
            proxy_pass http://fuzai;                          #这里的fuzai就是我们上面取得名字
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
  #拦截静态资源,我这里采用的是根据文件后缀去匹配,还有需要拦截的直接加进去就可以了,这样也是为了初学者好理解
  location ~ \.(jpg|ttf|woff|jpeg|png|ico|rar|css|js|zip|txt|flv|swf|doc|ppt|xls|pdf)$ {
            root assets;       #当然拦截后的这些文件都会去nginx下面assets对应的目录去寻找。这里要注意路径的问题,注意里面图片的路径要保证跟tomcat下的工程图片路径。(建议直接去tomcat直接拷一份工程扔到nginx下面,还好有朋友在QQ上问我这个问题,不然我自己都忘了。)
            access_log on;
            expires 3d;   
        }
   } 
}