zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

理解nginx的配置

配置Nginx 理解
2023-09-14 08:58:20 时间

Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。

main部分设置的指令将影响其它所有部分的设置;server部分的指令主要用于指定虚拟主机域名、IP和端口;upstream的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;location部分用于匹配网页位置(比如,根目录"/","/images",等等)。

他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。它有自己的特殊指令,不需要在其他地方的应用。

可以有多个server,location属于server子集。

一个完整的nginx.conf:


user www www;

worker_processes 1; # worker角色的工作进程个数,简单可设置CPU核数

error_log /www/log/nginx/error.log crit;

pid /www/server/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process. 

worker_rlimit_nofile 65535;

events 

 use epoll;

 worker_connections 65535;

# http设置

http {

 include mime.types;

 default_type application/octet-stream;

 autoindex on; #自动显示目录

 autoindex_exact_size off; #人性化方式显示文件大小否则以byte显示

 autoindex_localtime on; #按服务器时间显示,否则以gmt时间显示

 # log格式设置

 # log_format main $remote_addr - $remote_user [$time_local] "$request" 

 # $status $body_bytes_sent "$http_referer" 

 # "$http_user_agent" "$http_x_forwarded_for";

 server_names_hash_bucket_size 128;

 client_header_buffer_size 32k;

 large_client_header_buffers 4 32k;

 sendfile on; # 开启高效文件传输模式;下载服务器设置为off

 tcp_nopush on; # 默认值即可

 tcp_nodelay on; # 默认值即可

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

 send_timeout 20; # 指定响应客户端的超时时间

 client_max_body_size 10m;# 允许客户端请求的最大单文件字节数

 client_body_buffer_size 128k; # 缓冲区代理缓冲用户端请求的最大字节数

 # FastCGI设置

 fastcgi_connect_timeout 300;

 fastcgi_send_timeout 300;

 fastcgi_read_timeout 300;

 fastcgi_buffer_size 64k;

 fastcgi_buffers 4 64k;

 fastcgi_busy_buffers_size 128k;

 fastcgi_temp_file_write_size 128k;

 # gzip压缩功能设置

 gzip on; # 开启gzip压缩输出,减少网络传输

 gzip_min_length 1k;

 gzip_buffers 4 16k;

 gzip_http_version 1.0;

 gzip_comp_level 2;

 gzip_types text/plain application/x-javascript text/css application/xml;

 gzip_vary on;

 # Nginx带宽限制

 #limit_zone crawler $binary_remote_addr 10m;

 # http_proxy设置,按需设置

 proxy_connect_timeout 75; # 代理连接超时

 proxy_send_timeout 75; # 代理发送超时

 proxy_read_timeout 75; # 代理接收超时

 proxy_buffer_size 4k;

 proxy_buffers 4 32k;

 proxy_busy_buffers_size 64k;

 proxy_temp_file_write_size 64k;

 proxy_temp_path /www/server/nginx/proxy_temp 1 2;

 #利用proxy_cache来缓存文件

 #levels设置目录层次 

 #keys_zone设置缓存名字和共享内存大小 

 #inactive在指定时间内没人访问则被删除在这里是1天 

 #max_size最大缓存空间

 proxy_cache_path /www/server/nginx/proxy_cache levels=1:2 keys_zone=content:20m inactive=1d max_size=100m; 

 #等号中间要加的,关键只要加上proxy_cache_path 

 # 设定负载均衡后台服务器列表,按需设置,一般不需要

 upstream backend { 

 #ip_hash; 

 server 192.168.10.100:8080 max_fails=2 fail_timeout=30s ; 

 server 192.168.10.101:8080 max_fails=2 fail_timeout=30s ; 

 # 虚拟主机配置,server 指令开始

 include /www/server/nginx/conf/vhosts/*.conf;

完整的vhost的配置文件:
/www/server/nginx/conf/vhosts/me.52fhy.com.conf

#虚拟主机配置

server {

 listen 80;

 server_name me.52fhy.com;

 index index.php index.html index.htm;

 root /52fhy.com/wordpress/;

 # WordPress Rewrite

 location / {

 if (-f $request_filename/index.html){

 rewrite (.*) $1/index.html break;

 if (-f $request_filename/index.php){

 rewrite (.*) $1/index.php;

 if (!-f $request_filename){

 rewrite (.*) /index.php;

 # 解析php|php5后缀

 location ~ .*\.(php|php5)?$

 #fastcgi_pass unix:/tmp/php-cgi.sock;

 fastcgi_pass 127.0.0.1:9000;

 fastcgi_index index.php;

 include fastcgi.conf;

 # 设置gif|jpg|jpeg|png|bmp|swf文件缓存时间

 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

 expires 30d; # 缓存30天

 # 设置js|css文件缓存时间

 location ~ .*\.(js|css)?$

 expires 1h; # 缓存1小时

 # 访问日志

 access_log /www/log/me.52fhy.com.log;

}

谷粒学苑项目实战(十):使用Nginx配置请求转发 之前前端的请求端口为8001,可是现在我们又多了8002端口,后面还会有8003、8004……,如何让前端能够请求这么多的端口呢? 也许我们可以写多个BASE_API,分别对应多个端口,可是在vue框架中许多地方都要用到BASE_API,这样修改的地方太多。 这就需要用到Nginx的请求转发了。
配置Nginx虚拟主机(二) ⭐本文介绍⭐ 在企业信息化应用环境中,安全性不仅取决于硬件防护设备,系统加固、访问控制等基本措施,而且如何减少故障中断时间,提高存储及北方的完善性也是确保企业信息安全的重要措施。本文将进一步学习服务器缓存加速、高可用/负载均衡群集、服务器集中监控等高级安全应用。后续课程将采用最小化安装的CentOS7.3系统,安装系统时勾选 开发工具 选项,以此为基础搭建实现环境。