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天。
}