编译nginx支持https+http2+nginx-http-concat模块

现在很多网站要求https访问,既能提高安全性,也避免运营商劫持。又必须给nginx加上这些功能。

注意:编译nginx需要安装好gcc gcc-c++

pcre下载地址:

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

我用的是8.39版本的pcre

openssl源码包下载地址:

https://www.openssl.org/source/ 或者 https://github.com/openssl/openssl/releases/

nginx-http-concat源码包下载地址:

https://github.com/alibaba/nginx-http-concat

nginx-http-concat用法说明:

https://www.nginx.com/resources/wiki/modules/concat/

https://github.com/alibaba/nginx-http-concat

nginx版本:

nginx-1.11.5.tar.gz (官网下载)


准备源文件:

这些软件的源代码及解压后存放在/home/tools/ ,步骤略过。

1、修改下nginx-http-concat源码:

编辑ngx_http_concat_module.c  修改第33行,将原先的x-javascript改成 javascript 保存退出。(具体原因请google)

2、编译安装nginx

groupadd web

useradd -g web web

cd /home/tools/nginx-1.11.5

./configure --prefix=/alidata/server/nginx \

--user=web --group=web \

--with-http_stub_status_module --with-http_ssl_module \

--with-http_gunzip_module --with-http_gzip_static_module \

--with-http_realip_module --with-file-aio \

--with-http_secure_link_module --with-http_auth_request_module \

--with-http_random_index_module --with-http_addition_module \

--with-poll_module --with-select_module \

--with-pcre=/home/tools/pcre-8.39 \

--add-module=/home/tools/nginx-http-concat \

--with-http_v2_module \

--with-openssl=/home/tools/openssl-1.1.0c

make -j 4 && make install

echo ‘export PATH=/alidata/server/nginx/sbin:$PATH‘ > /etc/profile.d/nginx.sh

source /etc/profile.d/nginx.sh

然后在nginx.conf里面配置上:

server {

listen 80;

server_name 192.168.2.11;

root /alidata/wwwroot;

index index.html index.php;

location / {

root /alidata/wwwroot;

index index.html index.php;

# 下面的可根据实际的业务环境来配,这里演示就都给列出来了

concat on;

concat_max_files 20;

concat_unique off;

}

# 下面的可根据实际的业务环境来配,这里演示就都给列出来了

location /static/css/ {

concat on;

concat_max_files 20;

concat_unique off;

}

location /static/js/ {

concat on;

concat_max_files 30;

concat_unique off;

}

}

使用方法:

准备2个js文件1.js和2.js,放在/alidata/wwwroot目录下。

我们可以在浏览器单独访问 http://192.168.2.11/1.js和http://192.168.2.11/2.js

也可以使用 http://192.168.2.11/??1.js,2.js 这种方式同时加载2个js文件,这就是nginx-http-concat的作用。

https的配置也差不多,类似下面这种:

server {

listen 443;

ssl on;

ssl_certificate /data/web/nginx_key/1_www.demo.com_bundle.crt;

ssl_certificate_key /data/web/nginx_key/2_www.demo.com.key;

server_name  www.demo.com;

access_log  /home/wwwlogs/demo.access.log;

error_log   /home/wwwlogs/demo.error.log;

root   html;

index  index.html index.htm index.php;

## send request back to tomcat ##

location / {

proxy_pass  https://127.0.0.1:8443;

# Proxy Settings

proxy_redirect     off;

proxy_set_header   Host             $host;

proxy_set_header   X-Real-IP        $remote_addr;

proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

proxy_max_temp_file_size 0;

proxy_connect_timeout      90;

proxy_send_timeout         90;

proxy_read_timeout         90;

proxy_buffer_size          4k;

proxy_buffers              4 32k;

proxy_busy_buffers_size    64k;

proxy_temp_file_write_size 64k;

}

}

时间: 2024-10-22 12:34:29

编译nginx支持https+http2+nginx-http-concat模块的相关文章

Nginx支持https訪問

Nginx支持https訪問 # yum -y install openssl openssl-devel 然后就是自己颁发证书给自己 # cd /usr/local/nginx/conf 1.創建帶密鑰口令的私鑰key # openssl genrsa -des3 -out server.key 1024 2.創建證書申請文件csr # openssl req -new -key server.key -out server.csr 3.清除私鑰的口令,重新生成不帶密鑰的key(不清除口令,重

配置nginx支持https

 一:开启Nginx的SSL模块 Nginx如果未开启SSL模块,配置Https时提示如下错误: nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf 解释:nginx缺少http_ssl_module模块,需要在已安装的nginx中添加ssl模块. 说明:我的nginx安装目录为:/usr/local/nginx , 源码包在/usr/sr

Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向

Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenial 安装(如果有apache服务器, 建议卸载了, 或者改Nginx的默认端口): sudo apt-get install nginx 此时已经开启了80端口, 并且配置处在etc/

CentOS 中 配置 Nginx 支持 https

一.基础设置: 1.yum -y update 2.yum -y install openssl* 3.cd /usr/local/nginx/conf 4.mkdir ./ssl 5.cd ./ssl # 在ssl目录下用openssl创建 .key 私钥文件和 .crt 证书文件 6.openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout www.ushark.net.key -out www.ushark.net.crt 7

nginx 支持 https 访问的配置——完整配置文件

关于https的介绍网上很多了,就不啰嗦了. 配置支持https的访问需要nginx安装了ssl模块.其次是要准备ssl证书,nginx版的证书包含了crt文件和key文件,这个ssl证书一般是从认证服务提供商那里申请.假定nginx服务已经准备妥当,现在需要增加https访问的支持,只需要修改一下nginx的虚拟主机配置文件就可以了. 先看完整的配置文件内容吧,重要的几个地方有写注释. # your.domain.name.conf # 这一块是监听 80 端口的访问请求,也就是http的访问

nginx支持https

默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这个文件名类似libssl-dev. 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: openssl genrsa -des3 -out server.key 1024 创建签

生成自签名ca 证书 使nginx 支持https

创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(CSR): $ openssl req -new -key server.key -out server.csr 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: $ cp server.key server.key.org $ openssl rsa -in server.key.org -out server.key 最后标记证书使

Nginx基础知识————生成自签名ca 证书 使nginx 支持https

创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(CSR): $ openssl req -new -key server.key -out server.csr 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: $ cp server.key server.key.org $ openssl rsa -in server.key.org -out server.key 最后标记证书使

【Nginx】使用certbot安装免费https证书使Nginx支持Https请求

certbot官网:https://certbot.eff.org/lets-encrypt/centosrhel7-nginx 一.安装步骤 1)安装certbot,执行  sudo yum install certbot python2-certbot-nginx 2)检查是否安装成功,执行  certbot --help [[email protected] ~]# certbot --help Traceback (most recent call last): File "/usr/b