二、nginx安装

一、安装
(1)安装Nginx及相关组件
(2)Nginx的路径配置到系统变量中,配完需要重启系统
因查看网站时,http的ResponseHeaders里会有服务器信息,例如:Server:nginx,为了安全,可将服务器信息隐藏掉。1、解压
1、解压
tar -zxvf 
unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 nginx-goodies-nginx-sticky-module-ng
2、安装PCRE
cd pcre-8.38
./configure
make && make install
3、安装lua模块
cd openresty-1.13.6.2/bundle/LuaJIT-2.1-20180420/
vim /etc/profile
设置root级环境变量
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.1
source /etc/profile
增加link连接
ln -s /usr/local/lib/libluajit-5.1.so.2 /lib/libluajit-vi5.1.so.2
4、修改nginx源码
4.1. src/http/ngx_http_header_filter_module.c
[sw@swfirstbalance nginx-1.14.0]$ vim src/http/ngx_http_header_filter_module.c
找到:
static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;
修改为:
static u_char ngx_http_server_string[] = "Server: SingleWindow" CRLF;
static u_char ngx_http_server_full_string[] = "Server: SingleWindow" NGINX_VER CRLF;
static u_char ngx_http_server_build_string[] = "Server: SingleWindow" NGINX_VER_BUILD CRLF;
4.2. src/core/nginx.h
[sw@swfirstbalance nginx- 1.14.0]$ vim src/core/nginx.h
找到:
#define NGINX_VERSION " 1.14.0"
#define NGINX_VER "nginx/" NGINX_VERSION
修改为:
#define NGINX_VERSION "x"
#define NGINX_VER "SingleWindow/" NGINX_VERSION
4.3. src/http/ngx_http_special_response.c
[sw@swfirstbalance nginx-1.14.0]$ vim src/http/ngx_http_special_response.c
找到:
static u_char ngx_http_error_tail[] =
"<hr><center>nginx</center>" CRLF
"</body>" CRLF
"</html>" CRLF
修改为:
static u_char ngx_http_error_tail[] =
"<hr><center>SingleWindow</center>" CRLF
"</body>" CRLF
"</html>" CRLF
5、安装nginx
./configure --prefix=/soft/nginx/nginx-1.14.0 \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_realip_module \
--with-pcre=../nginx-other-module/pcre-8.38 \
--with-openssl=../nginx-other-module/openssl-1.0.2p \
--with-zlib=../nginx-other-module/zlib-1.2.11 \
--add-module=../nginx-other-module/nginx-goodies-nginx-sticky-module-ng \
--add-module=../nginx-other-module/nginx_upstream_check_module-0.3.0 \
--add-module=../nginx-other-module/lua-nginx-module-0.10.13 \
make
make install
二、nginx常用命令
1、在sbin目录下
nginx安装路径
nginx启动路径nginx/sbin
  (1) nginx 启动nginx
  (2)nginx -v 查看nginx版本
  (3)nginx -s reload 重新载入配置文件
  (4)nginx -s reopen 重启 Nginx
  (5)nginx -s stop 停止nginx
  (6)nginx安装完成后目录结构
三、常用的第三方模块
1、OpenSSL是一种功能强大的商用级全功能工具包,适用于传输层安全性(TLS)和安全套接字层(SSL)协议。它也是一个通用的加密库。
2、zlib:
一个大型漂亮但又精美不引人注目的压缩库(也是免费的,不提及不受专利限制)
3、lua模块
ngx_lua将Lua嵌入Nginx,可以让Nginx执行Lua脚本,并且高并发、非阻塞的处理各种请求。Lua内建协程,这样就可以很好的将异步回调转换成顺序调用的形式。
4、nginx_upstream_check_module
nginx_upstream_check_module-master 这个就是淘宝技术团队开发的 Nginx 模块 ,通过它可以用来检测后端 realserver 的健康状态。如果后端 realserver 不可用,则所有的请求就不会转发到该节点上。
5、
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。
四、nginx内部模块
nginx模块分为以下几类:
NGX_CORE_MODULE  //核心模块
NGX_HTTP_MODULE  //HTTP处理模块
NGX_EVENT_MODULE //事件处理模块
NGX_MAIL_MODULE  //邮件处理模块
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Stickynginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route (a)客户端首次发起访问请求,nginx接收后,发现请求头没有cookie,则以轮询方式将请求分发给后端服务器。 (b)后端服务器处理完请求,将响应数据返回给nginx。 (c)此时nginx生成带route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值 (d)客户端接收请求,并保存带route的cookie。 (e)当客户端下一次发送请求时,会带上route,nginx根据接收到的cookie中的route值,转发给对应的后端服务器。 其他需要注意的 (a)同一客户端的请求,有可能落在不同的后端服务器上。如果客户端启动时同时发起多个请求。由于这些请求都没带cookie,所以服务器会随机选择后端服务器,返回不同的cookie。当这些请求中的最后一个请求返回时,客户端的cookie才会稳定下来,值以最后返回的cookie为准。 (b)cookie不一定生效。由于cookie最初由服务器端下发,如果客户端禁用cookie,则cookie不会生效。 (c)客户端可能不带cookie。Android客户端发送请求时,一般不会带上所有的cookie,需要明确指定哪些cookie会带上。如果希望用sticky做负载均衡,请对Android开发说加上cookie。 (d)cookie名称不要和业务使用的cookie重名。Sticky默认的cookie名称是route,可以改成任何值。 (e)客户端发的第一个请求是不带cookie的。服务器下发的cookie,在客户端下一次请求时才能生效。 (f)Nginx sticky模块不能与ip_hash同时使用 sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback] [secure] [httponly]; [name=route] 设置用来记录会话的cookie名称 [domain=.foo.bar] 设置cookie作用的域名 [path=/] 设置cookie作用的URL路径,默认根目录 [expires=1h] 设置cookie的生存期,默认不设置,浏览器关闭即失效,需要是大于1秒的值 [hash=index|md5|sha1] 设置cookie中服务器的标识是用明文还是使用md5值,默认使用md5 [no_fallback] 设置该项,当sticky的后端机器挂了以后,nginx返回502 (Bad Gateway or Proxy Error) ,而不转发到其他服务器,不建议设置 [secure] 设置启用安全的cookie,需要HTTPS支持 [httponly] 允许cookie不通过JS泄漏,没用过

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值