2024年运维最新win环境nginx实战配置详解_windows中nginx操作(3)

#http块可以包含多个server块,而一个server块中又可以包含多个location块,
#server块可以配置文件引入、MIME-Type定义、日志自定义、是否启用sendfile、连接超时时间和单个链接的请求上限等。
http {

#通用配置…

N个server 模块虚拟服务器

}


3、http模块里面通用的配置



include       mime.types; #导入支持的文件类型,是相对于/apps/nginx/conf的目录,在响应报文中将指定的文件扩展名映射至MIME对应的类型
default_type  application/octet-stream; #除mime.types中文件类型外,设置其它文件默认类型,访问其它类型时会提示下载不匹配的类型文件

#log_format  main  '$remote_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;
#作为web服务器的时候打开sendfile加快静态文件传输,指定是否使用sendfile系统调用来传输文件,
#sendfile系统调用在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,
#操作效率很高,被称之为零拷贝,硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协议栈。
sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;  #长连接超时时间,单位是秒

#开启gzip压缩,若想关闭gzip压缩,则需要注释掉这句话,或者将on换成off
#gzip  on;
#配置允许压缩的页面的最小字节数,页面字节数从header头中的Content-Length中获>取,建议设置成1k,因为如果数据小于1k,他也会压缩成1k,这样会起到反作用。
#gzip_min_length 1k;
#4个16k的数据流用于存储gzip的压缩结果数据流
#gzip_buffers 4 16k;
#支持的http版本为1.1
#gzip_http_version 1.1;
#判断客户端是否支持gzip技术,若不支持则不会进行gzip处理
#gzip_vary on;

# 全局跨域配置
#为 * 表示服务器可以接受所有的请求源(Origin),即接受所有跨域的请求,也可以指定一个确定的URL
add_header 'Access-Control-Allow-Origin' '*' always;
#可选字段,为true表示允许发送Cookie。同时,发送时,必须设置XMLHttpRequest.withCredentials为true才有效,请求若服务器不允许浏览器发送,删除该字段即可。
add_header 'Access-Control-Allow-Credentials' 'true';
#代表允许使用指定的方法请求该地址
add_header 'Access-Control-Allow-Methods' 'GET, POST, PATCH, DELETE, PUT, OPTIONS';
#代表允许在请求该地址的时候带上指定的请求头,例如:Content-Type,Authorization,使用逗号(,)拼接起来放在双引号(")中
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, X-Custom-Header, Access-Control-Expose-Headers, Token, Authorization';
add_header 'Access-Control-Allow-Headers'  '*';
#代表着在 1728000 秒之内不用请求该地址的时候 不需要再进行预检请求,也就是跨域缓存。
add_header 'Access-Control-Max-Age' 1728000;

4、server 虚拟服务器详解及通用配置



#每个server用于定义一个虚拟主机,第一个server为默认虚拟服务器
server {
#设置一个虚拟机主机,可以包含自己的全局快,同时也可以包含多个location模块。
#比如本虚拟机监听的端口、本虚拟机的名称和IP配置,多个server 可以使用一个端口,比如都使用80端口提供web服务
listen 80; #配置server监听的端口
server_name localhost; #本server的名称,当访问此名称的时候nginx会调用当前serevr内部的配置进程匹配。

	#是否在响应报文中的Content-Type显示指定的字符集,默认off不显示
	#charset charset | off;
    #charset koi8-r;#设置编码格式,默认是俄语格式,建议改为utf-8
	#示例
	#charset utf-8;

    #access_log  logs/host.access.log  main;
	
    autoindex on; # 显示目录,默认不开启
    
    autoindex_localtime on;# 显示文件修改时间 # 显示文件大小
    
    #多个 location 配置....

}


5、server 中 多个location 配置 



    #以http的方式转发mp4请求到指定web服务器。
	#访问 http://127.0.0.1/6d.mp4 就可以播放视频,而视频6d.mp4就在html/dist目录下。
    location ~ /.mp4$ {
	    #root E:\sh\nginx; # 你的文件目录
        mp4;			# 支持mp4
        mp4_buffer_size 10m;#处理mp4初始内存大小
        mp4_max_buffer_size 50m;#处理mp4最大内存大小
    }

    location / {
        root   html/dist;#相当于默认页面的目录名称,默认是安装目录的相对路径,可以使用绝对路径配置。
        index  index.html index.htm;#默认的页面文件名称
		#给OPTIONS 添加 204 的返回,为了处理在发送POST请求时Nginx依然拒绝访问的错误,发送"预检请求"时,需要用到方法 OPTIONS,所以服务器需要允许该方法。
		if ($request_method = 'OPTIONS') {
			return 204;
		}
    }
	#proxy_pass的配置详解在后面
    location /test {
        proxy_pass http://127.0.0.1:9006;
		proxy_redirect off;#关闭重定向
		#proxy_redirect #旧地址 新地址;
		#proxy_redirect default;  #默认配置
		#若客户端发过来的请求header中有HOST这个字段,$http_host和$host表示的就是原始请求host,比如请求的时候HOST的值是http://demo.com,那么反代后还是http://demo.com。
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;#将$remote_addr的值放进变量X-Real-IP中,此变量名可变,$remote_addr的值为客户端的ip
		proxy_set_header X-forwarded-For $proxy_add_x_forwarded_for;#获得用户真实ip
    }

    location /ars {
        proxy_pass http://192.8.3.211:9006;
    }
	#/person/getPersonUrl
    location /kvc {
		add_header 'Access-Control-Allow-Origin' '*' ;
		add_header 'Access-Control-Allow-Credentials' 'true';
		add_header 'Access-Control-Allow-Methods' '*';
		add_header 'Access-Control-Allow-Headers'  '*';
		add_header 'Access-Control-Max-Age' 1728000;
		proxy_pass http://192.8.3.211:1288;
	}
	
	location /about {

root /app/html; #必须要在html目录中创建一个名为about的目录才可以访问,否则报错。
}

	location /about { #注意about后不要加/ , 使用alias的时候uri后面如果加了斜杠,则下面的路径配置必须加斜杠,否则403

alias /opt/html/about; #当访问about的时候,会显示alias定义的/opt/html/about里面的内容。
}

	#注意:location中使用root指令和alias指令的意义不同
	#root 给定的路径对应于location中的/uri 左侧的/
	#alias 给定的路径对应于location中的/uri 的完整路径

	#error_page  404              /404.html;#错误页面的文件名称

	# redirect server error pages to the static page /50x.html
	#
	error_page   500 502 503 504  /50x.html;#错误页面的文件名称
	location = /50x.html { #location处理对应的不同错误码的页面定义到/50x.html,这个跟对应其server中定义的目录下。
		root   html;#定义默认页面所在的目录
	}

6、第二个server,单独处理视频播放



#serverd第二个服务虚拟服务器
#访问http://127.0.0.1:8088/6d.mp4 就可以播放视频,而视频6d.mp4就在E:/sh/nginx/nginx目录下。
server {
listen 8088;
server_name 127.0.0.1;
charset utf-8,gbk;
#root /usr/local/nginx/html/files; # 你的文件目录
root E:/sh/nginx/nginx; # 你的文件目录
# 显示目录,默认不开启
autoindex on;
# 显示文件大小
# 显示文件修改时间
autoindex_localtime on;
location ~ /.mp4$ {
mp4; # 支持mp4
mp4_buffer_size 10m;
mp4_max_buffer_size 50m;
}
}


7、第三个server 单独展示图片



#作为下载服务器配置
#官方文档:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html
#作为上传服务器
# 定义缓存目录
proxy_cache_path E:/sh/nginx/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
server {
listen 8081;
location ~* /.(jpg|jpeg|png|gif)$ {
# 开启缓存功能
proxy_cache my_cache;

        # 指定缓存时间(单位为秒)
        proxy_cache_valid any 30d;
        
        # 如果未命中缓存则从后端服务器获取并进行缓存
        #proxy_pass http://backend-server;
        
        # 其他相关配置...
    }
	location ~* /.(css|js)$ {
		#1h代表一小时
		expires 1h;
		 # 开启缓存功能
        proxy_cache my_cache;
        
        # 指定缓存时间(单位为秒)
        proxy_cache_valid any 30d;
    }
}

8、整个配置文件展示



#全局配置端,对全局生效,主要设置nginx的启动用户/组,启动的工作进程数量,工作模式,Nginx的PID路径,日志路径等。
#user nobody;
#user nginx nginx;#启动Nginx工作进程的用户和组
worker_processes 1; #启动工作进程数数量
#worker_processes [number | auto]; #启动Nginx工作进程的数量,一般设为和CPU核心数相同
#worker_cpu_affinity 00000001 00000010 00000100 00001000 | auto ;
#将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占以一核心CPU,
#但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,
#减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

#events设置快,主要影响nginx服务器与用户的网络连接,比如是否允许同时接受多个网络连接,
#使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数,是否开启对多工作进程下的网络连接进行序列化等。
events {
#设置单个nginx工作进程可以接受的最大并发,作为web服务器的时候最大并发数为worker_connections * worker_processes,
#作为反向代理的时候为(worker_connections * worker_processes)/2
worker_connections 1024;
}

#http块是Nginx服务器配置中的重要部分,缓存、代理和日志格式定义等绝大多数功能和第三方模块都可以在这设置,
#http块可以包含多个server块,而一个server块中又可以包含多个location块,
#server块可以配置文件引入、MIME-Type定义、日志自定义、是否启用sendfile、连接超时时间和单个链接的请求上限等。
http {
include mime.types; #导入支持的文件类型,是相对于/apps/nginx/conf的目录,在响应报文中将指定的文件扩展名映射至MIME对应的类型
default_type application/octet-stream; #除mime.types中文件类型外,设置其它文件默认类型,访问其它类型时会提示下载不匹配的类型文件

#log_format  main  '$remote_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;
#作为web服务器的时候打开sendfile加快静态文件传输,指定是否使用sendfile系统调用来传输文件,
#sendfile系统调用在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,
#操作效率很高,被称之为零拷贝,硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协议栈。
sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;  #长连接超时时间,单位是秒

#开启gzip压缩,若想关闭gzip压缩,则需要注释掉这句话,或者将on换成off
#gzip  on;
#配置允许压缩的页面的最小字节数,页面字节数从header头中的Content-Length中获>取,建议设置成1k,因为如果数据小于1k,他也会压缩成1k,这样会起到反作用。
#gzip_min_length 1k;
#4个16k的数据流用于存储gzip的压缩结果数据流
#gzip_buffers 4 16k;
#支持的http版本为1.1
#gzip_http_version 1.1;
#判断客户端是否支持gzip技术,若不支持则不会进行gzip处理
#gzip_vary on;

# 全局跨域配置
#为 * 表示服务器可以接受所有的请求源(Origin),即接受所有跨域的请求,也可以指定一个确定的URL
add_header 'Access-Control-Allow-Origin' '*' always;
#可选字段,为true表示允许发送Cookie。同时,发送时,必须设置XMLHttpRequest.withCredentials为true才有效,请求若服务器不允许浏览器发送,删除该字段即可。
add_header 'Access-Control-Allow-Credentials' 'true';
#代表允许使用指定的方法请求该地址
add_header 'Access-Control-Allow-Methods' 'GET, POST, PATCH, DELETE, PUT, OPTIONS';
#代表允许在请求该地址的时候带上指定的请求头,例如:Content-Type,Authorization,使用逗号(,)拼接起来放在双引号(")中
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, X-Custom-Header, Access-Control-Expose-Headers, Token, Authorization';
add_header 'Access-Control-Allow-Headers'  '*';
#代表着在 1728000 秒之内不用请求该地址的时候 不需要再进行预检请求,也就是跨域缓存。
add_header 'Access-Control-Max-Age' 1728000;

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 28
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web服务器三剑客运维配置实战 Nginx+JVM+Tomcat+HTTP协议 视频教程+笔记+课件+资料 虽然在课程还讲解了部分HTTP协议的技术,但是课程的重点还是NGINX、JVM、Tomcat三相运维配置技术。课程内容包括了Nginx进阶基础,Nginx配置提升,JVM虚拟机尝试,JVM运维实用排障工具,JVM监控工具,Tomcat配置,Tomcat运维与部署等Web服务器的必备运维部署技术。 ===============课程目录=============== (1)\笔记+课件+资料;目录文件数:0个 (2)\视频教程;目录文件数:49个 ├─1.01 HTTP协议-工作原理及消息结构.mp4 ├─1.02 HTTP协议-客户端请求信息及服务端响应信息.mp4 ├─1.03 HTTP协议-请求方法及响应头信息.mp4 ├─1.04 HTTP协议-状态码.mp4 ├─1.05 Nginx进阶基础-Nginx介绍及为什么选择Nginx.mp4 ├─1.06 Nginx进阶基础-IO多路复用及内部技术架构.mp4 ├─1.07 Nginx进阶基础-虚拟主机.mp4 ├─1.08 Nginx进阶基础-虚拟主机.mp4 ├─2.01 Nginx进阶常见配置-虚拟主机+PHP-FPM.mp4 ├─2.02 Nginx进阶-常见配置-反向代理.mp4 ├─2.03 Nginx进阶基础-常见配置-反向代理.mp4 ├─2.04 Nginx进阶基础-upstream.mp4 ├─2.05 Nginx进阶基础-常用配置-会话保持.mp4 ├─2.06 Nginx进阶基础常见配置-动静分离.mp4 ├─2.07 Nginx进阶常见配置-rewrite-概念介绍.mp4 ├─2.08 Nginx进阶常见配置-rewrite实例.mp4 ├─2.09 Nginx进阶常见配置-rewrite实例.mp4 ├─2.10 Nginx进阶常见配置-if指令.mp4 ├─2.11 Nginx进阶常见配置-set及return指令.mp4 ├─2.12 Nginx进阶基础-常见配置-return及break指令.mp4 ├─2.13 Nginx进阶基础-常见配置-location.mp4 ├─3.01 Nginx进阶配置提升-预定义变量及日志详解.mp4 ├─3.02 Nginx进阶配置提升-日志切割及升级.mp4 ├─3.03 Nginx进阶-配置提升-Nginx错误页面.mp4 ├─3.04 Nginx进阶-配置提升-访问控制.mp4 ├─3.05 Nginx进阶-配置提升-流量控制.mp4 ├─3.06 Nginx进阶-提升配置-流量控制.mp4 ├─3.07 Nginx进阶-配置提升-Nginx监控.mp4 ├─3.08 Nginx进阶-配置提升-NginxAlias虚拟目录.mp4 ├─4.01 jvm虚拟机常识-什么是java虚拟机-java如何做到跨平台.mp4 ├─4.02 jvm虚拟机常识-虚拟机结构.mp4 ├─4.03 jvm虚拟机常识-虚拟机堆内存结构.mp4 ├─4.04 jvm虚拟机常识-jvm虚拟机参数类型-常用的jvm参数.mp4 ├─4.05 java细腻及讲解-jvm虚拟机常识-常用垃圾回收算法.mp4 ├─4.06 jvm运维实用排障工具.mp4 ├─4.07 jvm运维实用排障工具-jps-jstack.mp4 ├─4.08 jvm运维实用排障工具-jinfo-jstat.mp4 ├─4.09 jvm运维实用监控工具-virtualvm安装-安装插件.mp4 ├─4.10 jvm运维实用监控工具-如何监控jvm.mp4 ├─5.01 tomcat简介与tomcat基础JDk.mp4 ├─5.02 tomcat&jdk安装.mp4 ├─5.03 tomcat目录介绍-tomcat运维-启动与关闭.mp4 ├─5.04 tomcat运维-tomcat日志说明-tomcat管理功能.mp4 ├─5.05 tomcat运维-server.xml配置文件注释.mp4 ├─5.06 tomcat运维-web站点部署.mp4 ├─5.07 tomcat运维-部署开源站点.mp4 ├─5.08 tomcat运维-tomcat优化.mp4 ├─5.09 tomcat运维-tomcat性能优化.mp4 ├─5.10 tomcat部署war包实战.mp4 (3)\笔记+课件+资料\第1天;目录文件数:4个 ├─01-第1天-HTTP协议.pdf ├─02-第1天-Nginx进阶基础.pdf ├─第1天-HTTP协议.md ├─第1天-Nginx进阶基础.md (4)\笔记+课件+资料\第2天;目录文件数:1个
Nginx是一款高性能的开源Web服务器和反向代理服务器。在Windows操作系统上配置Nginx主要涉及以下几个方面: 1. 下载和安装Nginx:在Nginx官方网站上,我们可以下载到适用于Windows操作系统的Nginx安装程序。下载完成后,双击安装程序进行安装,按照提示进行相关配置,比如选择安装目录等。 2. 配置Nginx配置文件:Nginx的主配置文件是nginx.conf。可以用文本编辑器打开该文件进行配置。其,常见的配置项包括监听端口、服务器名称、日志文件路径、代理配置和访问控制等。 3. 配置虚拟主机:Nginx支持虚拟主机的配置。在虚拟主机配置,我们可以指定不同的域名或IP地址对应的不同主机。配置虚拟主机可以实现多个网站或应用在同一台服务器上运行,提高服务器的利用率。 4. 配置反向代理:Nginx可以作为反向代理服务器,将客户端请求转发到后端的其他服务器。通过反向代理,可以实现负载均衡、缓存加速、SSL终端等功能。在配置文件,我们可以设置代理服务器的地址和端口,并定义代理规则。 5. 配置HTTPS:如果要在Nginx上启用HTTPS协议,我们需要生成SSL证书,并将证书路径配置Nginx配置文件。此外,还需要配置HTTPS监听端口以及相关的加密算法和SSL选项。 6. 启动和重启Nginx:在配置完成后,我们可以使用命令行工具或者点击桌面快捷方式启动Nginx服务。同时,可以使用命令行工具执行nginx -s reload命令,实现对Nginx的重启,使得配置生效。 总之,通过以上步骤,我们可以在Windows操作系统成功配置Nginx,并实现Web服务器和反向代理服务器的功能。当然,具体的配置还需要根据具体的需求和环境来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值