1、首先用yum安装nginx需要的的插件。

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

yum -y install gcc gcc-c++ autoconf automake

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

【注释】不要问我为什么安装这些,因为我在后面执行./configure时报错提示缺少这些组件。主要和我需要安装那些模块和功能支持有关系。

2、下载nginx-1.9.4安装包,可以到官网上面下载。

解压,新建nginx用户组和nginx用户,并设置为不可登陆。

tar -zxvf nginx-1.9.4.tar.gz

cd nginx-1.9.4

groupadd -r nginx

useradd -s /sbin/nologin -g nginx -r nginx

3、执行./configure检查环境

./configure --prefix=/opt/nginx --sbin-path=/usr/sbin/nginx --conf-path=/opt/nginx/nginx.conf --error-log-path=/opt/nginx/logs/error.log --http-log-path=/opt/nginx/logs/access.log --pid-path=/opt/nginx/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_spdy_module --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'

【注释】以上参数主要是指定 nginx的安装目录,启动命令路径,配置文件路径,错误日志路径,和你需要的安装的模块,具体的在官网和网上都有说明,这里就不一一介绍。

4、执行编译安装

make && make install

5、

cd nginx

mv nginx.conf nginx.conf.bak       #备份初始配置文件

[jason@host-192-168-2-12 ~]# cat /opt/nginx/nginx.conf  #上传我自己的配置好的conf文件

#user  nobody;

worker_processes 1;

error_log logs/error.log;

pid  /opt/nginx/nginx.pid;

worker_rlimit_nofile 65535;

events {

    use epoll;

    worker_connections 65535;

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;

    sendfile on;

    tcp_nopush on;

    keepalive_timeout  65;  

    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;  

    client_max_body_size 300m;

    client_body_buffer_size 128k;

    proxy_connect_timeout  600;  

    proxy_read_timeout   600;

    proxy_send_timeout 600;

    proxy_buffer_size 16k;

    proxy_buffers 4 32k;

    proxy_busy_buffers_size 54k;

    proxy_temp_file_write_size 64k;

   


    upstream hm.bioeh.com {

        server 192.168.2.11:8080 weight=10 max_fails=2 fail_timeout=30s;

        server 192.168.2.12:8080 weight=10 max_fails=2 fail_timeout=30s;

}

    upstream doctor_server_pool {  

      server 192.168.2.11:8081 weight=10 max_fails=2 fail_timeout=30s;  

      server 192.168.2.12:8081 weight=10 max_fails=2 fail_timeout=30s; 

}

    server {

        listen       80;  

        server_name  hm.bioeh.com;  

        charset utf-8;

        location /bsp/ {

            root   html;

            index  index.html index.htm;

            proxy_pass     http://hm.bioeh.com;

            proxy_set_header X-Real-IP $remote_addr;

   proxy_set_header x-forwarded-for $remote_addr; 


            client_max_body_size 100m;

            }

        location /doctor/ {

     root   html;

              index  index.html index.htm;

              proxy_pass     http://doctor_server_pool;

              proxy_set_header X-Real-IP $remote_addr;


     proxy_redirect off; 

     proxy_set_header Host $host; 

              proxy_set_header X-Real-IP $remote_addr; 

              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

              client_max_body_size 100m;

    }

    }  


nginx -c nginx.conf             #检查配置文件

mkdir -p /var/cache/nginx/client_temp #提示有错误,需要创建这个目录

nginx -c nginx.conf             #再次检查配置文件,没有问题

6、启动nginx

#nginx

# netstat -tulnp|grep 80

tcp   0    0 0.0.0.0:80   0.0.0.0:*    LISTEN      14263/nginx  

【注释】80端口存在,说明服务启动成功,也telnet IP 80查看,或者直接在浏览器访问。