首页 > 系统相关 >Nginx配置

Nginx配置

时间:2023-06-16 15:48:05浏览次数:47  
标签:http nginx 配置 Nginx proxy 设置 gzip 服务器

下载安装:http://nginx.org/en/download.html

下载稳定版

启动 cmd即可

start nginx

tasklist /fi "imagename eq nginx.exe"
修改端口号
localhost:80或者 127.0.0.1打开

重启:.\nginx -s reload
停止: .\nginx -s quit
.\nginx -s stop

   nginx -t 判断问题在第几行
   nginx.conf配置文件

Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main部分设置的指令将影响其它所有部分的设置;server部分的指令主要用于指定虚拟主机域名、IP和端口;upstream的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;location部分用于匹配网页位置(比如,根目录"/","/images",等等)。他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。它有自己的特殊指令,不需要在其他地方的应用。

user www www; #默认的用户名
worker_processes 2; #进程的个数

error_log logs/error.log;

error_log logs/error.log notice;

error_log logs/error.log info;

pid logs/nginx.pid;

nginx作为反向代理服务器 计算公式最大连接数=worker_processes*worker_connections/4

所以这里的worker_connections是8192都没关系,但是不能超过后面的worker_rlimit_nofile

当nginx作为http服务器时,计算公式里面是除以2

worker_rlimit_nofile 10240写在main部分,最大是65535

events {

use epoll;     #写在events部分,在linux操作系统下,nginx默认是epoll事件模型,OpenBSD,FreeBSD是kqueue
worker_connections  2048;

}

http服务器,提供一些http服务相关的配置

http {

include       mime.types;
default_type  application/octet-stream;
#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;

#开启高效文件传输模式,sendfile是nginx是否调用sendfile函数输出文件,减少用户空间到内核空间的上下文切换
#对普通应用设置为on,如果进行下载应用磁盘IO重负载应用,可设为off,以平衡磁盘与网络I/O处理速度
#降低系统的负载

sendfile        on;  

# tcp_nopush     on;

#长连接超时时间,单位是秒,这个参数很敏感,涉及浏览器的种类,后端度服务器的超时设置,操作系统的设置,
#长连接请求大量小文件的时候,可以减少重建连接的开销,但假如有大文件上传,65s内没上传完会导致失败
#如果设置时间过长,用户有多,长时间保持连接会占大量资源

keepalive_timeout  65;

#send_timeout

gzip压缩功能设置

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

#设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值是20。建议设置成大于1#k的字节数,小于1k可能会越压越大

gzip_min_length 1k;

 #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。 
 #4 16k代表以16k为单位,安装原始数据大小以16k为单位的4倍申请内存。
 
gzip_buffers    4 16k;
gzip_http_version 1.0; #早期的版本不支持gzip,为了让他支持
gzip_comp_level 6;   #1压缩比最小速度最快。9压缩比最大速度最慢(传输快但是消耗cpu)

#指定压缩类型
gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;

#和http头有关系,会在响应头加个 Vary: Accept-Encoding #可以让前端的缓存服务器缓存经过gzip压缩的页面,例如,用Squid缓存经过Nginx压缩的数据

gzip_vary on; 

#gzip_proxied any : #Nginx作为反向代理的时候启用,决定开启或者关闭后端服务器返回的结果是否压缩,匹配的前提是后端服务器必须要返#回包#含"Via"的 header头	

http_proxy 设置 这是作为反向代理的功能(包括缓存功能)

client_max_body_size   10m; 

client_body_buffer_size   128k;

proxy_connect_timeout   75; #nginx跟后端服务器连接超时时间(代理连接超时)

proxy_send_timeout   75;

proxy_read_timeout   75;     #连接成功后,与后端服务器两个成功的响应操作之间超时时间(代理接收超时)

#设置代理服务器(nginx)从后端realserver读取并保存用户头信息的缓冲区大小,默认与proxy_buffers大小相同,
#其实可以将这个指令值设的小一点

proxy_buffer_size   4k;  

#poxy_buffers缓冲区,nginx针对单个连接缓存来自后端realserver的响应,网页平均在32k以下的话,这样设置
proxy_buffers   4 32k;

#高负荷下缓冲大小(proxy_buffers*2)
proxy_busy_buffers_size   64k;

#当 proxy_buffers放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中, #这个值用来设置最大临时文件大小,
#默认1024M,
#它与 proxy_cache 没有关系。大于这个值,将从upstream服务器传回。设置为0禁用。
proxy_temp_file_write_size  64k;

proxy_temp_path   /usr/local/nginx/proxy_temp 1 2;

设定负载均衡后台服务器列表

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 {
    listen       80; #小于1024的要以root启动,可以为listen *.80、listen 127.0.0.1:80
	
    server_name  itoatest.example.com;  #服务器名字可以是localhost。www.example.com、或者正则
    root   /apps/oaapp;
    charset utf-8;
    access_log  logs/host.access.log  main;
    #对 / 所有做负载均衡+反向代理
    location / {
        root   /apps/oaapp;   #定义服务器的默认网站根目录
		
        index  index.jsp index.html index.htm;
		
		#请求转向backend定义的服务器列表,即反向代理,对应upstream负载均衡器
        proxy_pass        http://backend;   
		
        proxy_redirect off;
        # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
        proxy_set_header  Host  $host;
        proxy_set_header  X-Real-IP  $remote_addr;  
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

    }
    #静态文件,nginx自己处理,不去backend请求tomcat
    location  ~* /download/ {  
        root /apps/oa/fs;  

    }
    location ~ .*/.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$   
    {   
        root /apps/oaapp;   
        expires      7d; 
    }
       location /nginx_status {
	   
	   #允许和禁用某个ip或某个时间段访问
        stub_status on;
        access_log off;
		#  auth_basic   "NginxStatus";
        #  auth_basic_user_file   /usr/local/nginx-1.6/htpasswd;
        allow 192.168.10.0/24;
        deny all;
		
		
		#http-devel工具htpasswd来为访问的路径设置登录密码
		#htpasswd -c htpasswd admin
		#New passwd:
		#Re-types new password:
		#Adding password for user admin
		#htpasswd htpasswd admin //修改admin密码
		#htpasswd htpasswd sean //多添加一个认证用户
		#这样就默认使用了CRYRT加密的密码文件,打开上面的注释,重启nginx
    }
    location ~ ^/(WEB-INF)/ {   
        deny all;   
    }
    #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 {
        root   html;
    }
}

其它虚拟主机,server 指令开始

}

Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件,在location,server 或 http段中加入autoindex on;,另外两个参数最好也加上去:

autoindex_exact_size off; 默认为on,显示出文件的确切大小,单位是bytes。改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。改为on后,显示的文件时间为文件的服务器时间

location /images {
root /var/www/nginx-default/images;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}

标签:http,nginx,配置,Nginx,proxy,设置,gzip,服务器
From: https://www.cnblogs.com/guchen33/p/17485704.html

相关文章

  • 项目管理工具----普加项目管理中间件(PlusProject )入门教程(3):如何配置列(中)
    普加项目管理中间件是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。除了上文的标准列,开发者可以根据自己扩展的任务属性类型,来创建自己的列。比如://文本输入框编辑列varstringColumn={name:"name",......
  • python configparser读取配置文件
    #coding:utf-8importconfigparserimportosimportjsonbase_path=os.path.dirname(os.path.abspath(__file__))conf_file=os.path.join(base_path,"config.ini")defread_config():#读取配置文件信息try:cf=configparser.ConfigParser()......
  • python 读取yaml配置文件
    #coding:utf-8importyaml#pipinstallpyyamlimportosimportjsonbase_path=os.path.dirname(os.path.abspath(__file__))conf_file=os.path.join(base_path,"db.yaml")defread_yaml():#读取配置文件信息try:f=open('db.yaml&#......
  • 虚拟机配置
     ......
  • rocketmq集群配置简介
    RocketMQ天生对集群的支持非常好,它有以下一些模式:(1)单Master优点:除了配置简单没什么优点缺点:不可靠,该机器重启或者宕机,将要导致整个服务不可用(2)多Master优点:配置简单,性能最高缺点:可能会有少量消息丢失(配置相关),单台机器重启或宕机期间,该机器下未被消费的消息在机器恢复前不可......
  • ssh配置pam登陆策略
    ssh配置pam登陆策略1.pam下sshd配置文件问题升级后openssh中的配置文件可能会导致root用户和普通用户输入正确密码也无法登陆解决办法:使用原sshd配置文件#%PAM-1.0authrequiredpam_sepermit.soauthsubstackpassword-authauthinclude......
  • 联想小新pro16 ubuntu18.04双系统、显卡驱动配置
    双系统安装注意了,所有的步骤都要按照这个链接来,跳过一步可能就出错了Ubuntu18.04安装教程每一步都有、多图卸载ubuntu方法一旦出错,先去计算机磁盘管理里面把ubuntu相关的区都给删掉,下面这个图不太清楚,主要就是上个链接中的四个区都格式化。然后,按照这个教程的第三步删除开......
  • 华为路由器、交换机、AC忘记密码,保留配置处理方法 密码恢复
    在不能通过telnet登录的情况下通过console线更改:通过BootROM清除Console口登录密码交换机的BootROM提供了清除Console口登录密码的功能,用户可以在交换机启动后修改Console口登录密码,然后保存配置。请按照如下步骤进行配置。第一步1.通过Console口连接交换机,......
  • Redis哨兵模式的配置
    1.环境准备master节点1个slave节点2个sentinel【哨兵】节点3个redis版本5.0.3操作系统:Centos72.主从节点配置创建redis-conf目录,此目录用于存放主从节点的配置文件复制redis.conf,然后创建三个配置文件:redis-6379.conf,redis-6380.conf,redis-6381.conf编辑主节点的配置......
  • Centos7 安装nginx
    1.添加Nginx到YUM源添加CentOS7Nginxyum资源库,打开终端,使用以下命令:sudorpm-Uvhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2.安装Nginx在你的CentOS7服务器中使用yum命令从Nginx源服务器中获取来安装Nginx:su......