安装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学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。


