本文nginx使用源码安装部署.

安装模块需要在configure后添加参数,如./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module 安装了ssl模块.

如果要添加模块,但不想删除之前nginx数据,可以将nginx源码目录下的objs目录中的nginx文件拷贝到nginx的sbin目录下替代现有主程序,然后killall nginx 再重启即可.

cd ~/lnmp_soft/nginx-1.22.1/
    ./configure  
    > --with-stream                                
#开启4层代理模块
    > --with-http_stub_status_module                
#开启status状态页面
  make     #编译
  killall  nginx
  cp  objs/nginx /usr/local/nginx/sbin/   #覆盖原文件
  /usr/local/nginx/sbin/nginx   #开启nginx
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

1.ssl安全网页模块

源码安装Nginx时必须使用--with-http_ssl_module参数,启用加密模块,对于需要进行SSL加密处理的站点添加ssl相关指令(设置网站需要的私钥和证书)并在conf文件中添加响应的配置。

openssl genrsa > conf/cert.key #生成私钥
openssl req -x509 -key conf/cert.key > conf/cert.pem    #生成自签名、X.509 格式证书
  • 1.
  • 2.
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   https;                        #加密网站根目录
            index  index.html index.htm;
        }
    }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

2.健康检查页面模块

编译安装时使用--with-http_stub_status_module开启状态页面模块

在conf中添加配置

cat /usr/local/nginx/conf/nginx.conf
… …
location /status {
                stub_status on;
                 #allow IP地址;
                 #deny all;
        }
… …
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

重启nginx后即可直接访问 IP地址/status:

Active connections:当前活动的连接数量。

Accepts:已经接受客户端的连接总数量。

Handled:已经处理客户端的连接总数量。

Requests:客户端发送的请求数量。

Reading:当前服务器正在读取客户端请求头的数量。

Writing:当前服务器正在写响应信息的数量。

Waiting:当前多少客户端在等待服务器的响应。

PV(Page View):页面浏览量,即网站页面在一定时间内被访问的页面总次数,相同用户刷新相同页面也被计算一次,反映了用户对网站内容的浏览情况,可以通过访问日志得到。

UV(Unique Visitor):独立访客数,统计一定周期内,访问网站的独立用户数量,不重复计算同一用户的多次访问。可以通过访问日志或根据用户的唯一标识去重得到

PV与UV都是衡量业务活跃度的重要指标,尤其网站改版升级后,可以进行对比来判断业务情况

3.连接限制模块

--with-ngx_http_limit_conn_module

limit_rate 无法限制用户开启多个网页同时访问导致流量过大,可以使用连接限制模块修改用户访问连接限制,使一个客户同时打开多个连接也无法突破限制

conf配置:

http {
        limit_conn_zone $binary_remote_addr zone=addr:10m; 
        #在内存中创建一个库文件来存储访问者的ip       
        server {
    location /app {
    limit_rate 30k;     
    limit_conn addr 1 ; 
    #利用ip库查看是否有重复ip,同一ip只允许开一个链接
    }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.