Nginx使用brotli

首先下载brotli的nginx模块 cd /opt/local/src git clone https://github.com/google/ngx_brotli.git 接着下载brotli源代码 cd ngx_brotli cd deps/brotli git clone https://github.com/google/brotli.git 编译nginx源代码指定第三方模块 ./configure --prefix=/opt/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/opt/local/src/pcre-8.36 --add-module=/opt/local/src/ngx_brotli 可能会报错,提示你 ./configure: error: Brotli library is missing from the /opt/local/src/ngx_brotli/deps/brotli directory. Please make sure that the git submodule has been checked out: cd /opt/local/src/ngx_brotli && git submodule update --init && cd /opt/local/src/nginx-1.12.1 照着它的提示操作就好了,网络不好的话需要等很长时间,这时候就是展现技术的时候了,你懂得 cd /opt/local/src/ngx_brotli && git submodule update --init && cd /opt/local/src/nginx-1.12.1 操作完以后,再一次编译nginx源码 ./configure --prefix=/opt/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/opt/local/src/pcre-8....

November 9, 2018 · 1 min · ZhaoGuibin

Nginx 启用gzip压缩

网页压缩 网页压缩是一项由 WEB 服务器和浏览器之间共同遵守的协议,也就是说 WEB 服务器和浏览器都必须支持该技术,所幸的是现在流行的浏览器都是支持的,包括 IE、FireFox、Opera 等;服务器有 Apache 和 IIS 等。双方的协商过程如下: 首先浏览器请求某个 URL 地址,并在请求的头 (head) 中设置属性 accept-encoding 值为 gzip, deflate,表明浏览器支持 gzip 和 deflate 这两种压缩方式(事实上 deflate 也是使用 gzip 压缩协议,下面我们会介绍二者之间的区别); WEB 服务器接收到请求后判断浏览器是否支持压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容; 浏览器获取响应内容后,判断内容是否被压缩,如果是则解压缩,然后显示响应页面的内容。 在实际的应用中我们发现压缩的比率往往在 3 到 10 倍,也就是本来 50k 大小的页面,采用压缩后实际传输的内容大小只有 5 至 15k 大小,这可以大大节省服务器的网络带宽,同时如果应用程序的响应足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以大大的提升页面的浏览速度。 ...

March 1, 2018 · 2 min · ZhaoGuibin

nginx配置HTTPS

PS:设置HTTPS nginx需要添加ssl模块 –with-http_ssl_module 在nginx的conf目录下新增ssl目录,并进入。 生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 2048 运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施! 去除key文件口令的命令: openssl rsa -in server.key -out server.key 用刚生成的服务器私钥,生成证书请求文件。 openssl req -new -key server.key -out server.csr 生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书. 同样的命令生成生成客户端的私钥(key 文件)和证书请求文件Certificate Signing Request(CSR) openssl genrsa -des3 -out client.key 2048 openssl req -new -key client.key -out client.csr 生成的CSR证书文件必须有CA的签名才可形成证书。这里制作自己的CA, 这时生成一个KEY文件ca.key 和根证书ca.crt。默认生成CA证书有效期是一个月,可以添加-days 365,设置有效期即为365天。 openssl req -new -x509 -keyout ca.key -out ca.crt -days 365 签署证书准备工作: [root@centos65 ssl]# vim /etc/pki/tls/openssl.cnf #修改如下 dir = /etc/pki/CA #根据openssl....

December 16, 2017 · 1 min · ZhaoGuibin

NGINX-启动-warn-conflicting-server-name-“xxx-com”-on-0-0-0-0-80-ignored原因分析

报错如下: nginx: [warn] conflicting server name “www.xxx.com” on 0.0.0.0:80, ignored 域名重复配置所致

December 3, 2017 · 1 min · ZhaoGuibin

nginx配置location总结及rewrite规则写法

location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration CC ] } location ^~ /images/ { # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。 [ configuration D ] } location ~* \....

December 3, 2017 · 5 min · ZhaoGuibin

nginx-php-fpm出现502-bad-gateway错误解决方法

1.或者php-cgi端口和nginx配置不一致,这是比较低级的错误 2.php-fpm没有启动,到php-fpm所在目录启动 3.php-fpm配置文件user和group配置和Nginx不一致 4.在centos7中user和group修改在/opt/local/php/etc/php-fpm.d/www.conf里面

December 3, 2017 · 1 min · ZhaoGuibin

nginx-fastcgi-param解释

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径 fastcgi_param QUERY_STRING $query_string; #请求的参数;如?app=123 fastcgi_param REQUEST_METHOD $request_method; #请求的动作(GET,POST) fastcgi_param CONTENT_TYPE $content_type; #请求头中的Content-Type字段 fastcgi_param CONTENT_LENGTH $content_length; #请求头中的Content-length字段。 fastcgi_param SCRIPT_NAME $fastcgi_script_name; #脚本名称 fastcgi_param REQUEST_URI $request_uri; #请求的地址不带参数 fastcgi_param DOCUMENT_URI $document_uri; #与$uri相同。 fastcgi_param DOCUMENT_ROOT $document_root; #网站的根目录。在server配置中root指令中指定的值 fastcgi_param SERVER_PROTOCOL $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。 fastcgi_param GATEWAY_INTERFACE CGI/1.1; #cgi 版本 fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; #nginx 版本号,可修改、隐藏 fastcgi_param REMOTE_ADDR $remote_addr; #客户端IP fastcgi_param REMOTE_PORT $remote_port; #客户端端口 fastcgi_param SERVER_ADDR $server_addr; #服务器IP地址 fastcgi_param SERVER_PORT $server_port; #服务器端口 fastcgi_param SERVER_NAME $server_name; #服务器名,域名在server配置中指定的server_name #fastcgi_param PATH_INFO $path_info; #可自定义变量 #PHP only, required if PHP was built with --enable-force-cgi-redirect #fastcgi_param REDIRECT_STATUS 200; 在php可打印出上面的服务环境变量 如:echo $_SERVER['REMOTE_ADDR']

December 3, 2017 · 1 min · ZhaoGuibin

nginx-alert-kill-646-1-failed-3-No-such-process-解决方法

./nginx -s reload nginx: [alert] kill(1708, 1) failed (3: No such process) /opt/local/nginx/sbin/nginx -c /opt/local/nginx/conf/nginx.conf /opt/local/nginx/sbin/nginx -s reload PS: 假设你的nginx的目录是:/usr/opt/nginx/sbin/nginx 假设nginx的配置目录是: /usr/opt/nginx/conf/nginx.conf 重启的方法是:/usr/opt/nginx/sbin/nginx -c /usr/opt/nginx/conf/nginx.conf 参数-c 指定了配置文件的路径,如果不指定该参数,则nginx会默认加载其按照目录的conf目录下的nginx.conf. 平滑重启: 1、检查修改后的配置文件是否正确: /usr/opt/nginx/sbin/nginx -t -c /usr/opt/nginx/conf/nginx.conf 2、kill -HUP Nginx主进程号。示例如下: kill -HUP cat/usr/local/webserver/nginx/logs/nginx.pid 主要参数介绍如下:-c 为Nginx 指定一个配置文件,来代替缺省的。-t 不运行,而仅仅测试配置文件。

December 3, 2017 · 1 min · ZhaoGuibin

centos7编译安装nginx

ps : nginx安装在/opt/local/nginx里 1.安装编译安装依赖的类库和包 如果需要编译MySQL和PHP,就安装这些 yum install -y make apr* autoconf automake curl curl-devel gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* cpp glibc libgomp libstdc++-devel keyutils-libs-devel libsepol-devel libselinux-devel krb5-devel libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel libjpeg* libpng* php-common php-gd gettext gettext-devel ncurses* libtool* libxml2 libxml2-devel patch policycoreutils bison 如果只编译nginx,就安装这些 yum install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel 2.编译安装pcre PS:Pcre版本不能太高,8最好,要不编译不能通过 mkdir /usr/local/pcre #创建安装目录 tar zxvf pcre-8....

December 2, 2017 · 5 min · ZhaoGuibin