《JAVA从零架构》第4天—Nginx 之基本配置

Nginx 的配置是其实非常多的,对于这些基本配置,有的同学可能会觉得,这些网上就可以找到,用到的时候查询就可以了,这里,我想说的是,作为架构师修练,就不能像一般人看齐了,深入了解Nginx的配置,你才能更好地去使用它。

Nginx自身提供的模块,以及第三方模块,将他们以配置的方式集成进来是非常方便的,这就意味着想要真正用好nginx,就要学习很多很多的模块,下面咱们还是从零开始吧。

一、基本概念

1、Nginx在启动时默认会使用 安装路径/conf/nginx.conf文件,也可以在启动时使用-c来指定要使用的配置文件:

nginx -c /etc/nginx/nginx.conf

2、Nginx最常用的配置文件是nginx.conf : 应用程序配置文件,我们在后面主要针对这个配置文件做讲解

3、Nginx的进程结构:

启动Nginx的时候,会启动一个Master进程,这个进程不处理客户端的任何请求,主要用来创建worker进程,一个worker进程用来处理一个request。

4、Nginx基本模块指的是它默认的功能模块,它们提供的指令允许你使用定义Nginx基本功能的变量,在编译的时候不能被禁用,包括:

核心模块:基本功能和指令,如进程管理和安全

事件模块:在Nginx内配置网络使用的能力

配置模块:提供包含机制

二、配置实例

vi nginx.conf 打开nginx.conf配置文件,以下介绍基本的配置

1、nginx 的进程号目录配置

pid /var/run/nginx/nginx.pid;

2、nginx的事件配置,worker_connections 设置worker进程最大打开的连接数,以允许同时处理更多连接

events {

worker_connections 1024;

}

3、导入其他配置文件配置,在http{}中,以下均为

include mime.types;

4、日志格式化配置

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

'$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';

5、日志存放位置,并指定使用上面定义的日志格式main

access_log logs/access.log main;

6、长链接保持时间配置

keepalive_timeout 65;

7、设定负载均衡的服务器列表,这里可以配置多个tomcat地址,weigth参数表示权值,权值越高被分配到的几率越大

8、开启gzip压缩

gzip on;

gzip_disable "MSIE [1-6]\.(?!.*SV1)";

9、配置服务器相关

server {

#侦听80端口

listen 80;

#定义使用www.mayi.com访问

server_name www.mayi.com;

#设定本虚拟主机的访问日志

access_log logs/www.mayi.com.access.log main;

#默认请求

location / {

#定义服务器的默认网站根目录位置

root /root;

#定义首页索引文件的名称

index index.php index.html index.htm;

#fastcgi相关配置

$document_root/$fastcgi_script_name;

include /etc/nginx/fastcgi_params;

}

#定义错误提示页面

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /root;

}

#静态文件,nginx自己处理

location ~ ^/(images|javascript|js|css|flash|media|static)/ {

root /var/www/virtual/htdocs;

#静态文件过期30天,过期可以设大一点,如果频繁更新,则可以设置得小一点。

expires 30d;

}

#设定查看Nginx状态的地址

location /NginxStatus {

stub_status on;

access_log on;

auth_basic "NginxStatus";

auth_basic_user_file conf/htpasswd;

}

#禁止访问 .htxxx 文件

location ~ /\.ht {

deny all;

}

}

}

好了,基本的配置说明就到这里,接下来还会有几篇Nginx的文章来详细说明每个模块的配置。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180615G0834M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券