安装编译时需要的环境gcc、make、wget,g++
下载openssl主要用于ssl模块加密,支持htps
wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz
下载pcre来实现对地址重定向,地址重写功能和localtion指令以及正则表达式的支持
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
下载zlib gzip压缩模块
wget https://zlib.net/zlib-1.2.11.tar.gz
下载Nginx
wget http://nginx.org/download/nginx-1.16.1.tar.gz
使用tar 解压所有的文件
ls *.tar.gz | xargs -n1 tar xzvf
编译选项
使用./configure
设置各种Nginx参数的脚本,包括源和配置文件的路径,编译器选项,连接处理方法和模块列表。该脚本通过创建编译代码和安装Nginx开源所需的Makefile来完成。
参数 | 描述 |
---|---|
--prefix=<PATH> | Nginx安装目录,以及有其他配置脚本选项的路径设置的所有相对路径的基本位置。默认值/usr/local/nginx
|
--sbin-path=<PATH | Nginx二进制执行文件的名称,默认值:<prefix>/sbin/nginx
|
--conf-path=<PATH> | Nginx配置文件的名称。但是,您可以通过在nginx命令行上使用选项指定其他文件来始终在启动时覆盖此值。默认值:<prefix> conf / nginx.conf-c <FILENAME>
|
--pid-path=<PATH> | nginx.pid文件的名称,用于存储nginx主进程的进程ID 。安装后,可以使用Nginx配置文件中的pid指令更改文件名的路径。默认值:<prefix> /logs/nginx.pid
|
--error-log-path=<PATH> | error,warn和诊断数据的日志文件的名称。安装后,可以使用Nginx配置文件中的error_log指令更改文件名。默认值:<prefix> /logs/error.log
|
--http-log-path=<PATH> | HTTP服务器请求的主日志文件的名称。安装后,始终可以使用Nginx配置文件中的access_log指令更改文件名。默认值:<prefix> /logs/access.log
|
--user=<NAME> | Nginx运行进程的拥有者。安装后,可以使用Nginx配置文件中的user指令更改名称。默认:nobody
|
--group=name | nginx运行进程的拥有者用户组。安装后,可以使用NGINX配置文件中的user指令更改名称。默认值:--user选项设置的值 |
--with-pcre=<PATH> | PCRE库源代码的路径,这是位置指令和Rewrite模块中正则表达式支持所必需的 |
--with-pcre-jit | 使用“即时编译”支持(pcre_jit指令)构建PCRE库 |
--with-zlib=<PATH> | zlib库的源代码路径,Gzip模块需要该路径 |
--with-http_ssl_modul | 启用HTTPS支持 |
--with-http_v2_module | 开启 HTTP/2请求支持 |
编译安装
./configure \
--with-openssl=../openssl-1.0.2s \
--with-pcre=../pcre-8.43 \
--with-zlib=../zlib-1.2.11 \
--with-pcre-jit --user=admin \
--prefix=/home/admin/nginx \
--with-http_ssl_module \
--with-http_v2_module
make
make install
make install结束后表示安装成功
此时创建Nginx的用户名为admin --user=admin
Nginx编译后所在位置为/home/admin/nginx
到此nginx安装完成,下面为部署ssl
在nginx内新建文件夹cert
mkdir /home/admin/nginx/cert
将ssl中的.pem文件和.key文件放入cert内
修改配置文件
vim /home/admin/nginx/conf/nginx.conf
注释掉http上的所以内容
自己在最下方加入以下内容
http{
server {
listen 443 ssl;
server_name 域名;
ssl_certificate /home/admin/nginx/cert/文件名.pem;
ssl_certificate_key /home/admin/nginx/cert/文件名.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;
}
}
server{
listen 80;
server_name 域名;
return 301 https://域名;
}
}