Nginx的安装与核心配置

安装Nginx 与运行

安装Nginx

  1. 去官网http:/nginx .org/下载对应的nginx 包,推荐使用稳定版本
  2. 上传nginx 到linux 系统
  3. 安装依赖环境
  • 安装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
  1. 解压,需要注意,解压后得到的是源码,源码需要编译后才能安装
    tar-zxvf nginx-1. 16.1. tar.gz
  2. 编译之前,先创建nginx 临时目录,如果不创建,在启动nginx的过程中会报错
    mkdir / var/ temp/ nginx - p
  3. 在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临时目录
  1. make编译:make
  2. 安装:make install
  3. 进入sbin目录启动nginx :. /nginx ,停止:./nginx -s stop ,重新加载:./nginx -s reload
  4. 打开浏览器,访问虚拟机所处内网ip即可打开nginx 默认页面,显示如下便表示安装成功:

注意事项:

  1. 如果在云服务器安装,需要开启默认的nginx 端口:80
  2. 如果在虚拟机安装,需要关闭防火墙
  3. 本地win或mac需要关闭防火墙

niginx.conf核心配置文件

  1. 设置worker 进程的用户,指的linux 中的用户,会涉及到nginx操作目录或文件的一些权限,默认为nobody :user root
  2. worker 进程工作数设置,一般来说CPU有几个,就设置几个,或者设置为N-1也行:worker _processes 1;
  3. nginx 日志级别debug i info notice warn error I crit I alert emerg ,错误级别从左到右越来越大
  4. 设置nginx 进程pid
    pid logs/ nginx. pid;
  5. 设置工作模式
events {
	#默认使用epoll 
	use epott;
	#每个worker 允许连接的客户端最大连接数
	worker connections 10240 
}
  1. http是指令块,针对http网络传输的一些指令配置
http {
}
  1. include 引入外部配置,提高可读性,避免单个配置文件过大
include 	mime. types 
  1. 设定日志格式,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
  1. sendfile 使用高效文件传输,提升传输性能。启用后才能使用tcp_nopush ,是指当数据表累积一定大小后才发送,提高了效率。
sendfile   		on;
tcp_nopush		on;
  1. keepalive _timeout 设置客户端与服务端请求的超时时间,保证客户端`多次请求的时候不会重复建立新的连接,节约资源损耗。
# keepalive_ timeout  0
 keepalive _ timeout  65 
  1. gzip启用压缩,html/js/css压缩后传输会更快
    gzip on;
  2. 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学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。

你可能感兴趣的:(nginx,运维)