安装相关依赖
yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
下载nginx
nginx 官方
一般选择Stable version
版本
目前最新1.18.0
wget -c https://nginx.org/download/nginx-1.18.0.tar.gz
解压文件
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
配置相关参数
./configure --with-http_ssl_module
相关参数说明见文件末。
编译安装
make && make install
whereis nginx # 获取nginx 地址
配置nginx 参数
默认nginx配置文件路径/usr/local/nginx/conf/nginx.conf
添加https部分
在配置文件中添加
server {
listen 443 ssl;
server_name xxxx.com;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /xxx/web/;
index index.html index.htm;
}
}
启动、停止nginx
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
配置开机自启动
配置 nginx.service文件
vi /usr/lib/systemd/system/nginx.service
内容如下:
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 授权
chmod 755 nginx.service
## 重新装载系统服务
systemctl daemon-reload
启动服务
systemctl start nginx.service
注意事项
- 相关依赖必须安装
- 证书文件路径请仔细检查
- 过程中如果出错请检查相关输出日志
- 如果启动无错误,请检查防火墙是否正确开启
Nginx 参数说明:
目录参数
--prefix=PATH nginx安装后部署的根目录 /usr/local/nginx
--sbin-path=PATH 可执行文件放置路径 /sbin/nginx
--conf-path=PATH 配置文件放置路径 /conf/nginx.conf
--error-log-path=PATH error日志文件放置路径 /logs/error.log
--pid-path=PATH pid文件存放路径 /logs/nginx.pid
--lock-path=PATH lock文件放置路径 /logs/nginx.lock
--builddir=DIR 编译产生文件放置目录(Mackfile,目标,执行文件) /objs
--with-perl_modules_path=PATH per lmodule放置路径 无
--with-perl=PATH perl binary放置目录 无
--http-log-path=PATH access日志放置位置 /logs/access.log
--http-client-body-temp-path=PATH 临时文件 /client_body_temp
--http-proxy-temp-path=PATH 反向代临时文件夹 /proxy_temp
--http-fastcgi-temp-path=PATH fastcgi所使用临时目录 /fastcgi_temp
--http-uwsgi-temp-path=PATH UWSGI临时目录 /uwsgi_temp
--http-scgi-temp-path=PATH SCGI临时放置目录 scgi_temp
编译相关参数:
--with-cc=PATH C编译的路径
--with-cpp=PATH C预编译的路径
--with-cc-opt=OPTIONS 编译加入一些参数
--with-ld-opt=OPTIONS 生成目录文件
--with-cpu-opt=CPU 指定cpu处理架构
依赖相关参数:
--without-pcre nginx.conf支持正则表达式使用
--with-pcre 强制使用PCRE库
--with-pcre=DIR 指定PCRE库源码位置
--with-pcre-opt=OPTIONS 编译PCRE源码希望加入编译选项
库设置参数:
--with-openssl=DIR 指定openSSL源码位置 支持https必须配置这个
--with-openssl-opt=OPTIONS 编译SSL源码是希望加入编译选项
ATOMIC原子库设置参数:
--with-libatomic 强制使用atomic库
actom库是CPU架构独立的一种院子操作实现
--width-libatom=DIR atomic所在位置
散列函数库设置参数:
--with-MD5=DIR 指定MD5源码位置(nginx内部有MD5实现)
--with-MD5-opt=OPTIONS 编译MD5源码时加入参数
--with-MD5-asm 使用MD5的汇编源码
--with-SHA1=DIR 指定SHA1库源码位置
--with-SHA1-opt=OPTIONS 编译SHA`加入参数
--with-SHA1-asm 使用sha1的汇编源码
zlib库参数设置:
--with-zlib=DIR 指定ZLIb源码位置,使用gzip需要用到
--with-slib-opt=OPTION 编译zlib加入参数
--with-zlib-asm=CPU 指定zlib源码编译优化功能
模块相关参数:
事件模块:
--with-rtsig_module 使用rtsigmodule处理事件驱动
--with-select_module 使用select module 处理时间驱动
--without-select_module不安装select module
--with-poll_module 使用poll module处理时间处理驱动
--without-poll_module 不安装 poll modull模块驱动
--with-aio_module 使用AIO方式处理时间驱动
默认即编译计入NGinx的HTTP模块 (去除默认模块)
--without-http_charset_module 这个可以将HTTP响应重编码
--without-http_gzip_module content-type执行Gzip压缩
--without-http_ssi_module 响应包体中加入特定的内容,如html文件头文件尾
--without-http_userid_module 这个模块可以通过HTTP请求头补信息一些字段认证用户信息,已确定请求是否合法
--without-http_access_module 根据IP地址限制能够访问服务器客户端
--without-http_auth_basic_moudle 提供简单的用户名、密码认证
--without-http_autoindex_module 该模块提供建的目录浏览功能
--without-http_geo_module 定义一些遍历和客户端的ip地址做关联
--without-http_map_module 建立一个key/value映射表,可以对url做特殊处理
--without-http_split_clients_module 更具客户端信息区分处理
--without-http_refere_module 根据请求中的referer字段来拒绝请求
--without-http_refere_module 该模块提供HTTP请求在NGINX服务内部重定向功能,依赖PCRE库
--without-http_proxy_module http反向代理功能
--without-http_fastcgi_module FastCGI功能
--without-http_uwsgi_module uwSGI功能
--without-http_scgi_moudle 提供SCGI 功能
--without-http_memcached_module 直接有上游服务读取数据
--without-http_limit_zone_module 针对某个IP地址限制并发数
--without-http_limit_req_module 对某个地址限制请求数
--without-http_empty_git_module 接受无请求是返回 1*1像素gif图片
--without-http_browser_module 识别浏览器
--without-http_upstream_ip_hash_module 实现负载均衡用到
默认不会编译进入Nginx的HTTP模块
--with-http_ssl_module 支持SSL协议提供HTTPS服务
--with-http_realip_module 可以从客户端请求里度header信息
--with-http_addition_module 返回客户端HTTP包体头部或者尾部增加内容
--with-http_xslt_module 使XML格式数据发给客户前家XSL渲染(libxml2 libxslt)
--with-http_image_filter_module 图片压缩支持指定大小 (libgd)
--with-http_geoip_module 该某块可以更具MaxMindGEoIP的IP地址数据库得到实际地址位置
--with-http_sub_module 替换字符串
--with-http_dav_module Nginx支持Webdav标准
Webdav 协议中的 PUT DELETE COPY MOVE MKCOL
--with-http_flv_module 可以观看,拖动flash视屏
--with-http_mp4_module 拖动MP4视屏
--with-http_gzip_static_module 静态资源压缩
--with-http_random_index_module 访问目录随机返回任意文件
--with-http_secure_link_module 验证请求是否有效机制
--with-http_degradation_module 特殊系统调用 返回202 444
--with-http_stub_status_module 该模块统计页面获取相关的并发数
--with-google_perftool_module 给提供Google性能测试工具
邮件代理服务相关mail模块:
--with-mail 邮件服务反向代理模块 反向代理IMAP POP3 SMTP
--with-main_ssl_module 基于SSL/TSL协议执行上使用
--without-mail-pop3_module 不安装支持POP3协议
--without-main_imap_module
--without-mail_smtp_module
--with_debug 打印debug调用级别日志代码编译进nginx
--add-module-PATH 当NGinx加入第三块模块
--without-http 静止http服务器
--without-http-cache 禁用HTTP服务器里缓存cache特性
--with-file-aio 启用文件异步I/O处理磁盘文件
--with-ipv6 使用NGinx支持IPV6
--user=USER 这个Nginxworker进程运行时所属用户
--group=GROUP 指定Nginx worker进程运行时 所属的组