nginx-1.12.2源码安装配置

1 参考文档

http://nginx.org/en/download.html

http://nginx.org/en/docs/configure.html

https://github.com/openresty/lua-nginx-module

http://nginx.org/en/docs/http/configuring_https_servers.html

https://www.openssl.org/docs/man1.1.0/apps/genrsa.html

2 安装

2.1 打开防火墙端口

$ sudo /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
$ sudo /sbin/iptables -I INPUT -p tcp --dport 8443 -j ACCEPT
$ sudo service iptables save

2.2 获取安装包以及相关依赖

# 支持https
$ wget https://www.openssl.org/source/openssl-1.0.2m.tar.gz
$ wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.bz2
$ wget http://zlib.net/zlib-1.2.11.tar.gz
$ wget http://nginx.org/download/nginx-1.12.2.tar.gz
# 支持lua
$ wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
$ wget https://github.com/openresty/lua-nginx-module/archive/v0.10.11.tar.gz

2.3 解压安装包

$ tar zxvf openssl-1.0.2m.tar.gz
$ tar jxvf pcre-8.41.tar.bz2
$ tar zxvf zlib-1.2.11.tar.gz
$ tar zxvf v0.3.0.tar.gz
$ tar zxvf v0.10.11.tar.gz
$ tar zxvf nginx-1.12.2.tar.gz && cd nginx-1.12.2

2.4 安装nginx

注意:添加LUA支持,需要安装lua环境,参见LUA-环境搭建

$ ./configure --prefix=/opt/jediz90/nginx --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11     --with-openssl=../openssl-1.0.2m --with-http_gzip_static_module     --with-http_stub_status_module --with-http_ssl_module

# 添加TCP反向代理支持
    --with-stream

# 添加HTTP2支持
    --with-http_v2_module

# 添加LUA支持,需要安装lua环境--with-ld-opt="-Wl,-rpath,/opt/sloth/lj2/lib"     --add-module=/opt/sloth/ngx_devel_kit-0.3.0     --add-module=/opt/sloth/lua-nginx-module-0.10.11
$ make && make install

2.5 添加开机启动

$ sudo vim /lib/systemd/system/nginx.service

在文件中添加以下内容

[Unit]
Description=nginx
After=network.target 

[Service]
User=sloth
Group=sloth

Type=forking
ExecStart=/opt/jediz90/nginx/sbin/nginx
ExecReload=/opt/jediz90/nginx/sbin/nginx -s reload
ExecStop=/opt/sloth/jediz90/sbin/nginx -s quit
PrivateTmp=true 

[Install]
WantedBy=multi-user.target

添加到开机启动

$ sudo systemctl enable nginx.service 

3 LUA配置

编辑nginx.conf文件

location /lua {
  default_type ‘text/plain‘;
  content_by_lua_block {
    ngx.say("dog")
  }
} 

4 HTTS配置

$ mkdir /opt/jediz90/nginx/conf/key && cd /opt/jediz90/nginx/conf/key

4.1 Openssl 生成https证书

注:需要先安装openssl

# 安装openssl,如之前已经解压则无需在解压一遍
$ tar zxvf openssl-1.0.2m.tar.gz
$ cd openssl-1.0.2m
$ ./config --prefix=/opt/jediz90/openssl
$ make && make install
$ cd .. && rm -rf openssl-1.0.2m

创建私钥

$ /opt/jediz90/openssl/bin/openssl genrsa -out jediz90.key 1024

生成自签证书

$ openssl req -new -x509 -days 3650 -key jediz90.key -out jediz90.crt

编辑nginx.conf文件

$ vi /opt/jediz90/nginx/conf/nginx.conf

添加以下内容

    server {
        listen       8443 ssl;
        server_name  localhost;

        ssl_certificate      key/jediz90.crt;
        ssl_certificate_key  key/jediz90.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

5 HTTP2配置

参考上面HTTPS配置,然后进行以下调整

listen       8443 ssl http2;

6 解决 Mac OS X 下 Nginx 编译报错 symbol(s) not found for architecture x86_64

./configure 命令后, 不要继续 make, 要先修改下 Makefile 文件, 做法:

在当前 nginx 源码目录

$ cd objs
$ vi Makefile

# 找到类似这行

&& ./config --prefix=/opt/jediz90/nginx-1.12.2/../openssl-1.0.2g/.openssl no-shared  \

# 将 config 修改为 Configure darwin64-x86_64-cc, --prefix 之后的不用修改, 修改后的如:

&& ./Configure darwin64-x86_64-cc --prefix=/opt/jediz90/nginx-1.12.2/../openssl-1.0.2g/.openssl no-shared  \

# 修改保存, 反回到上级 nginx 源码目录继续执行 make 即可。

原文地址:https://www.cnblogs.com/jediz90/p/9221262.html

时间: 2024-08-29 06:32:01

nginx-1.12.2源码安装配置的相关文章

MySQL系列 - MySQL源码安装配置

二.MySQL系列 - MySQL源码安装配置(附5.7等最新版本)1.依赖环境准备2.开始安装2.1.下载MySQL2.2.解压2.3.赋权限2.4.修改配置文件2.5.启动MySQL3.MySQL 5.7源码安装不同之处 二.MySQL系列 - MySQL源码安装配置(附5.7等最新版本) 1.依赖环境准备 make安装 make编译器下载地址:http://www.gnu.org/software/make/ # tar zxvf make-3.82.tar.gz # cd make-3.

Apache HTTP Server的源码安装配置及实现

Apache HTTP Server简介 Linux下最有名的.功能最丰富的WEB服务器就属Apache HTTP Server(简称Apache). Apache HTTP Server是Apache软件基金会最有名的开源项目之一,它可以在大多数操作系统上运行. 目前官网的主要版本为2.2和2.4.CentOS 6使用2.2版本,CentOS 7使用2.4版本. 目前生产环境中部署2.2版本的居多,但是2.4版本有很多新的特性,下面就简要说明以下: (1)运行时动态可装载MPM 在2.4版本中

apr apr-util apache 源码安装 配置系统服务

在官网下载 源码包 apr-1.5.1.tar.gz apr-util-1.5.3.tar.gz httpd-2.4.10.tar.gz 安装用户是root 解压命令 tar -zxvf httpd-2.4.10.tar.gz 源码安装 apr ,apr-util ./configure --prefix=/usr/local/apr 报错:rm: cannot remove `libtoolT': No such file or directory 我直接忽略了,网上看有修改configure

linux小白 mysql5.0源码安装配置

安装mysql-5.0.45.tar.gz(该软件包下载地址:http://www.filewatcher.com/m/mysql-5.0.45.tar.gz.24433261-0.html) # groupadd mysql              #添加mysql组 # useradd -g mysql mysql      #添加mysql用户,且加入mysql组 --------------------编译过程---------------------------------- # t

NGINX源码安装配置详解(./configure),最全解析

NGINX ./configure详解 在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建"--without"表示禁用模块,也就是说这些模块在编译时会自动构建,若你想Nginx轻量级运行,可以去除一些不必要的模块. [[email protected] nginx-1.14.0]# ./configure --help => 查看安装配置项 --help 打印帮助信息. --prefix

mysql 5.5.6 源码安装配置

http://dev.mysql.com/doc/refman/5.6/en/index.html  mysql官网安装手册 http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html源码安装说明 根据官网文档将安装过程写成一个批处理文件mysql.install安装完毕之后需要修改配置文件 修改编码,防止乱码 my.cnf 配置参考http://dev.mysql.com/doc/refman/5.6/en/

MYSQL5.6源码安装配置

本安装将MySQL的数据文件与执行文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本. 在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是?/usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,

php 5.6.6 源码安装配置

php 需要安装的包 yum install -y gccgcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devellibpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibcglibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curlcurl-dev

Nginx 1.13.6 源码安装

系统:Centos 7.3 Server with GUI 软件:nginx-1.13.6.tar.gz 其他所需软件:openssl pcre zlib openssl-devel 安装方式:源码编译安装 安装位置:/usr/local/nginx 下载地址: http://nginx.org/en/download.html https://www.openssl.org/source/ https://ftp.pcre.org/pub/pcre/ http://zlib.net/ 安装需要