Nginx 安装,在官网 http://nginx.org  下载想要版本的软件到Linux主机。 解压后运行./configure如果要用做http服务器就得加上--with-http_ssl_module。安装会提示需要安装所需依赖包。有

gcc pcre-devel openssl-devel zlib-devel make。安装完依赖包,然后就make,后make install.

Nginx安装主目录在/usr/local/nginx.

主配置文件   conf/nginx.conf

网页目录 html

日志目录 logs

启动脚本 sbin/nginx

安装完成的Nginx启动脚本因为并没有在Linux环境变量的路径下出现,所以建议给个软连接

ln -s /usr/local/nginx/sbin/nginx /bin/nginx。这样就可以输入nginx这条命令。

nginx -v 查看版本 -V查看编译参数 -t测试默认配置文件 -c指定配置文件

在不停止服务的情况下升级软件版本

和安装差不多,就是缺少了make install改成make upgrade

并且usr/local/nginx/sbin/nginx要换成新解压的新版本目录下/objs/nginx

这样启动脚本升级了,但是配置文件并没有改变。

配置

配置文件结构

全局配置

user nginx; //进程所有者

worker_processes 1 ;//启动进程数量

error_log /var/log/nginx/error.log; //日志文件

pid /var/run/nginx.pid; PID文件

events {

    worker_connections 1024 ; //单个进程最大并发量

}

nginx用作虚拟服务器有三种

基于ip,域名和端口

域名在不同的server里面添加不同的server_name。

端口是不同listen,ip不同listen端口。有一个default选项默认服务器。

openssl genrsa -out my.key 生成私钥

openssl req -new -x509 -key my.key -out my.crt 生成自签名证书,自己的私钥签名证书。

没有-x509就会出一个证书请求。

nginx配置文件,最后几行注释掉的就是加密网站的配置。很简单可以看懂。

nginx反向代理

在http内平行server添加upstream 名字(任意取){

                //ip_hash;这个和权重不并存。(相同的客户端访问相同的服务器,如服务器记录客户登录信息,就不用访问别的服务器再重新登录。)

                server serverip1;//后面还可以加权重weight等于几就循环几次。

                server serverip2;//server serverip2  weight = 2;

                .......    max_fails =1 fail_timeout=30//失败次数为1.时间30s。

                        down 表示当前server暂停服务。backup备份服务器。

在server里添加

        proxy_pass http://名字(上文任意取的); //这句是表名访问这个server会转到上面的反向代理。

nginx反向代理就是为了负载均衡,可以轮询的访问上面的serverip1-n.

nginx优化

worker_processes 1 ;//启动进程数量,根据电脑本身配置设置。

worker_connections 1024 ; //单个进程最大并发量。这个设置必须小于ulimit里面的开启文件个数。系统层面的设置。具体更改在/etc/security/limits.conf。命令 ulimit -a 可查看。

http{

        server_tokens off; //不显示nginx的具体版本号。

        senddile on ;//提升nginx读文件的性能。

        tcp_nodelay on ;//关闭tcp延迟发送。

        keepalive_timeout 10; //保持连接超时。避免断开后再三次握手。

        gzip on ;//           压缩开启

        gzip_min_length 1000;   压缩起步1000字节

        gzip_comp_level 4;        压缩等级为中级 4级(1-9)

        gzip_type text/.....(一大堆压缩的东西)。后面指定的是需要压缩的东西格式。格式文件/nginx/conf/mini.type 第一列文件格式,第二列对应文件。想压缩那些就把他对应的第一列数据写进去空格隔开。

        open_file_cache max=2000 inactive=20s; 最大缓存文件2000个,缓存时间60s。

        open_file_cache_valid 60s;    缓存有效期。

        open_file_cache_min_uses 5;   访问超过5次缓存

        open_file_cache_erroes off; 缓存数据不报错

        client_header_buffer_size 1k;    客户端头文件大小

        large_client_header_buffer 4 4k;

         location  ~ \.(jpg|png|gif) {

                expires 30d;    //允许用户缓存上面的信息到浏览器,有效期30天。

}