栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Nginx学习笔记2——进阶篇

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Nginx学习笔记2——进阶篇

1、Nginx服务器基础配置实例

前面我们已经对Nginx服务器默认配置文件的结构和涉及的基本指令做了详细的阐述。通过这些指令的合理配置,我们就可以让一台Nginx服务器正常工作,并且提供基本的web服务器功能。

接下来将通过一个比较完整和最简单的基础配置实例,来巩固下前面所学习的指令及其配置。

需求如下:

1、有如下访问
    http://192.168.200.133:8081/server1/location1
        访问的是:index_sr1_location1.html
    http://192.168.200.133:8081/server1/location2
        访问的是:index_sr1_location2.html
    http://192.168.200.133:8082/server1/location1
        访问的是:index_sr2_location1.html
    http://192.168.200.133:8082/server1/location2
        访问的是:index_sr2_location2.html

2、如果访问的资源不存在
    返回自定义的404页面。

3、将/server1和/server2的配置使用不同的配置文件分割
    将文件放到/home/www/conf.d目录下,然后使用include进行合并。

4、为/server1和/server2各自创建一个访问日志文件

先建立好目录结构:

ngnix-1.20.2目录
    html目录
        conf.d目录
            server1.conf
            server2.conf
        myweb目录
            server1目录
                location1目录
                    index_sr1_location1.html
                location2目录
                    index_sr1_location2.html
                logs目录
                    access.log
            server2目录
                location1目录
                    index_sr2_location1.html
                location2目录
                    index_sr2_location2.html
                logs目录
                    access.log
            404.html
nginx.conf:

## 全局块 begin ##
# 配置允许运行Nginx工作进程的用户和用户组
# user	www

# 配置运行Nginx进程生成的worker进程数
worker_processes  2;

# 配置Nginx服务器运行对错误日志存放的路径
error_log	logs/error.log;

# 配置Nginx服务器允许时记录Nginx的master进程的PID文件路径和名称
pid logs/nginx.pid;

# 配置Nginx服务是否以守护进程方法启动
# deamon on;
## 全局块 end ##


## events块 begin ##
events {
	# 设置nginx网络序列化,解决惊群现象
	accept_mutex on;
	
	# 设置允许worker可以同时接收多个请求
	multi_accept on;
	
	# 设置nginx进程最大能接收的连接数
    worker_connections  1024;
	
	# 设置nginx的事件驱动模型
	# use epoll;
}
## events块 end ##


## http块 begin ##
http {
	# 解决MIME类型的配置
    include       mime.types;
    default_type  application/octet-stream;

	# 配置允许使用sendfile方式运输,用来提升nginx处理静态资源的效率
    sendfile        on;

	# 设置长连接的超时时间
    keepalive_timeout  65;
	
	# 配置请求处理日志格式
	log_format server1 '===>server1' access log format;
	log_format server2 '===>server2' access log format;
	
	
	## server块 begin ##
	# 通过include来指定额外的配置文件(相对路径从该文件所在目录开始)
	include ../html/conf.d/*.conf;
	## server块 end ##
}
## http块 end ##
server1.conf:

server {
	# 配置监听端口和主机名称
	listen 8079;
	server_name localhost;
	
	# 配置请求处理日志存放路径
	access_log html/myweb/server1/logs/access.log;
	
	# 配置处理/server1/location1请求的location
	location /server1/location1{
		# 根的相对路径从nginx所在目录开始
		root html/myweb;
		index index_sr1_location1.html;
	}
	
	# 配置处理/server1/location2请求的location
	location /server1/location2 {
		root html/myweb;
		index index_sr1_location2.html;
	}
	
	# 配置错误页面
	error_page 404 /404.html;
	# 配置错误页面转向
	location = /404.html {
		root html/myweb;
		index 404.html;
	}
}
server2.conf:

server {
	listen 8078;
	server_name localhost;
	access_log html/myweb/server2/logs/access.log;
	
	location /server2/location1{
		root html/myweb;
		index index_sr2_location1.html;
	}
	
	location /server2/location2 {
		root html/myweb;
		index index_sr2_location2.html;
	}
	
	error_page 404 /404.html;
	location = /404.html {
		root html/myweb;
		index 404.html;
	}
}
2、Nginx服务操作的问题

经过前面的操作我们会发现,如果想要启动、关闭或重新加载nginx配置文件,都需要先进入到nginx的安装目录的sbin目录,然后使用nginx的二进制可执行文件来操作,相对来说操作比较繁琐,应该如何优化?另外如果我们想把Nginx设置成随着服务器启动就自动完成启动操作,又该如何来实现?

2.1、Nginx配置成系统服务

把Nginx应用服务设置称为系统服务,方便对Nginx服务的启动和停止等相关操作,具体实现步骤:

在/usr/lib/systemd/system目录下添加nginx.service,内容如下:

2.2、Nginx命令配置到系统环境 3、Nginx静态资源部署 3.1、Nginx静态资源概述

静态资源即指在服务器端真实存在并且能直接拿来展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。

动态资源即指在服务器端真实存在但是要想获取需要经过一定的业务逻辑处理,根据不同的条件展示在页面不同这一部分内容,比如说报表数据展示、根据当前登录用户展示相关具体数据等资源。

Nginx处理静态资源的内容,我们需要考虑下面的这几个问题:

  • 静态资源的配置指令;
  • 静态资源的配置优化;
  • 静态资源的压缩配置指令;
  • 静态资源的缓存处理;
  • 静态资源的访问控制,包括跨域问题和防盗链问题。
3.1.1、静态资源的配置指令

1、listen指令

listen:用来配置监听端口。

语法

listen address[:port][default_server]...;

listen port [default_server];

默认值listen *:80 | *.8080
位置server

listen的设置比较灵活,我们通过几个例子来吧常用的设置方式熟悉下:

listen 127.0.0.1:8080; //listen localhost:8080 监听指定的IP和端口
listen 127.0.0.1; //监听指定IP的所有端口
listen 8000; //监听指定端口上的连接
listen *:8000; //监听指定端口上的连接

default_server属性是标识符,用来将此虚拟主机设置成默认主机。所谓的默认主机指的是如果没有匹配到对应的address:port,则会默认执行的。如果不指定默认使用的是第一个server。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号