安装Nginx 与运行
安装Nginx
- 去官网http:/nginx .org/下载对应的nginx 包,推荐使用稳定版本
- 上传nginx 到linux 系统
- 安装依赖环境
- 安装gcc环境:
yum instalt gcc-C++
- 安装PCRE库,用于解析正则表达式:
yum instalt - y pcre pcre-devet
- zlib压缩和解压缩依赖:
yum instalt - y zlib zlib-devel
也就是nttps - SSL安全的加密的套接字协议层,用于HTTP安全传输,
yum instatt - y opensst openss l-devet
- 解压,需要注意,解压后得到的是源码,源码需要编译后才能安装
tar-zxvf nginx-1. 16.1. tar.gz
- 编译之前,先创建nginx 临时目录,如果不创建,在启动nginx的过程中会报错
mkdir / var/ temp/ nginx - p
- 在nginx 目录,输入如下命令进行配置,目的是为了创建makefile 文件
/ configure \ n - -prefix= / usr/ local/ nginx \ n - -pid-path= / var/ run/ nginx/ nginx. pid \ n - -lock-
注:\n
代表在命令行中换行,用于提高可读性
配置命令:
命令 | 解释 |
---|---|
-prefix | 指定nginx 安装目录 |
-pid-path | 指向nginx 的pid |
-lock-path | 锁定安装文件,防止被恶意篡改或误操作 |
-error-log | 错误日志 |
-http-log-path | http日志 |
-with-http gzip static module | 启用gzip模块,在线实时压缩输出数据流 |
-http-client-body-temp-path | 设定客户端请求的临时目录 |
-http-fastcgi-temp-path | 设定fastcgil 临时目录 |
-http-uwsgi-temp-path | 设定uwsgi 临时目录 |
-http-scgi-temp-path | 设定scgi临时目录 |
- make编译:
make
- 安装:
make install
- 进入sbin目录启动nginx :
. /nginx
,停止:./nginx -s stop
,重新加载:./nginx -s reload
- 打开浏览器,访问虚拟机所处内网ip即可打开nginx 默认页面,显示如下便表示安装成功:
注意事项:
- 如果在云服务器安装,需要开启默认的nginx 端口:80
- 如果在虚拟机安装,需要关闭防火墙
- 本地win或mac需要关闭防火墙
niginx.conf核心配置文件
- 设置
worker
进程的用户,指的linux 中的用户,会涉及到nginx操作目录或文件的一些权限,默认为nobody :user root
worker
进程工作数设置,一般来说CPU有几个,就设置几个,或者设置为N-1也行:worker _processes 1;
- nginx 日志级别
debug i info notice warn error I crit I alert emerg
,错误级别从左到右越来越大 - 设置nginx 进程pid
pid logs/ nginx. pid;
- 设置工作模式
events {
#默认使用epoll
use epott;
#每个worker 允许连接的客户端最大连接数
worker connections 10240
}
- http是指令块,针对http网络传输的一些指令配置
http {
}
- include 引入外部配置,提高可读性,避免单个配置文件过大
include mime. types
- 设定日志格式,main为定义的格式名称,如此access _log就可以直接使用这个变量了
# log_format main '$sremote_ addr - $remote_ user [ $time_ local] " $request" '
# '$status $body_bytes_sent $http_referer " '
# '"$http_user_agent" "$http_ x _ forwarded_for"';
#access_log logs/access.log main;
参数名 | 参数意义 |
---|---|
$remote_addr | 客户端ip |
$remote_user | 远程客户端用户名,一般为:“_” |
$time_local | 时间和时区 |
$request | 请求的url以及method |
$status | 响应状态码 |
$body_bytes_send | 响应客户端内容字节数 |
$http_referer | 记录用户从哪个链接跳转过来的 |
$http_user_agent | 用户所使用的代理,一般来时都是浏览器 |
$http_x_forwarded_for | 通过代理服务器记录客户端的ip |
sendfile
使用高效文件传输,提升传输性能。启用后才能使用tcp_nopush
,是指当数据表累积一定大小后才发送,提高了效率。
sendfile on;
tcp_nopush on;
keepalive _timeout
设置客户端与服务端请求的超时时间,保证客户端`多次请求的时候不会重复建立新的连接,节约资源损耗。
# keepalive_ timeout 0
keepalive _ timeout 65
- gzip启用压缩,
html/js/css
压缩后传输会更快
gzip on;
- server 可以在http指令块中设置多个虚拟主机
- listen 监听端口
server name localhost 、ip、域名
location
请求路由映射,匹配拦截root
请求位置- index 首页设置
server {
listen 88;
server_name localhost;
location / {
root html;
index index.htmt index.htm
}
}
本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。