1.nginx.conf 注释

#user  nobody;
#  定义nginx的工作进程数,以cpu核数 为准
worker_processes  5;
# 想用哪个用能,直接打开注释,或者写进来即可
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#error_log  "pipe:rollback logs/error_log interval=1d baknum=7 maxsize=2G";
# pid文件的作用是,pid是用于启停进程的号码
# ps -ef去获取nginx的进程id
# 吧pid写入到 此 nginx.pid文件中,
pid        logs/nginx.pid;events {worker_connections  1024;
}
# 这个http区域,是nginx的核心功能区域
http {include       mime.types;default_type  application/octet-stream;#打开此nginx的访问日志功能,即可查看日志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        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#nginx开启静态资源压缩,比如nginx返回磁盘的html文件特别大,里面包含了诸多的js css,图片引用#  一个html文件 达到4m大小#  传输图片 等等都是高兴的 1080p图片#  打开此功能,能够极大的提升网站访问,以及静态资源压缩gzip  on;# 提供静态资源缓存功能,第一次访问过网页之后,nginx能够让图片js等静态资源,缓存到浏览器上# 浏览器下次访问网站,速度就几乎是秒开了# 想要用这些功能,只需要在nginx里打开某些配置即可,作者都已经写好了该功能##这里的server区域配置,就是虚拟主机的核心配置# nginx支持编写多个server{} 区域块,以达到多虚拟主机,多个站点的功能#   server{} 区域块,可以存在多个,且默认是自上而下去加载,去匹配的#   目前这里是第一个server {} 区域块,端口是85server {# 定义该网站的端口listen       85;#填写域名,没有就默认即可server_name  localhost;#更改nginx的编码支持charset utf-8;# 如此添加一行参数,当用户请求出错,出现404的时候,就返回 root定义的目录去寻找40x.html文件# 讲师机器的配置,也就是去  /s25python/ 这个目录下 寻找 40x.htmlerror_page  404  /40x.html;#access_log  logs/host.access.log  main;#access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;# nginx的域名匹配,所有的请求,都会进入到这里# 例如  192.168.178.140:85/lubenwei.jpg#    192.168.178.140:85/menggededianhua.txtlocation / {#这个root参数,是定义该虚拟主机,资料存放路径的,可以自由修改#  当用户访问  192.168.178.140:85的时候,就返回该目录的资料root   /s25python/;# index参数,用于定义nginx的首页文件名字  ,只要在/s25nginx目录下存在index.html文件即可index  index.html index.htm;}}#这里就是上一个Server{}的标签闭合处了,,可以写入第二个server{}
# 注意 ,注意,server{} 标签快,是平级的关系,不得嵌套,检查好你的花括号
# 这里是第二个虚拟主机的配置了
server  {listen 89;
server_name  _;
#nginx的域名匹配
# 当用户访问 192.168.178.140:89的时候,返回该目录的内容
location  / {root   /s25linux/;index  index.html;}}
}

2.nginx的web站点功能(nginx的虚拟主机站点配置)

指的就是在nginx中,能够通过文件目录的不同,可以定义多个不同的网站

2.1 如何修改nginx的首页地址,进入html目录下,找到index.html文件,默认读取的是这个文件

[root@s25linux html]# pwd
/opt/tngx232/html
[root@s25linux html]# ls
50x.html  index.html

2.2 在自己的站点下,存放一些静态资料,如gif,jpg等

[root@s25linux html]# ls
50x.html  55kai.jpg  index.html  s25.html

3.nginx的多站点功能

3.1 基于域名的多虚拟主机

修改hosts文件,强制写入域名对应关系,比较麻烦

3.2 基于端口的多虚拟主机

1.修改nginx.conf配置如下,定义2个server{} 区域块即可
第一个虚拟主机的配置

  #   目前这里是第一个server {} 区域块,端口是85server {# 定义该网站的端口listen       85;#填写域名,没有就默认即可server_name  localhost;#更改nginx的编码支持charset utf-8;#access_log  logs/host.access.log  main;#access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;# nginx的域名匹配,所有的请求,都会进入到这里# 例如  192.168.178.140:85/lubenwei.jpg#    192.168.178.140:85/menggededianhua.txtlocation / {#这个root参数,是定义该虚拟主机,资料存放路径的,可以自由修改#  当用户访问  192.168.178.140:85的时候,就返回该目录的资料root   /s25python/;# index参数,用于定义nginx的首页文件名字  ,只要在/s25nginx目录下存在index.html文件即可index  index.html index.htm;}}

第二个虚拟主机的配置

#这里就是上一个Server{}的标签闭合处了,,可以写入第二个server{}
# 注意 ,注意,server{} 标签快,是平级的关系,不得嵌套,检查好你的花括号
# 这里是第二个虚拟主机的配置了
server  {listen 89;
server_name  _;
#nginx的域名匹配
# 当用户访问 192.168.178.140:89的时候,返回该目录的内容
location  / {root   /s25linux/;index  index.html;}}

3.3改完配置文件后,分别创建2个站点的资源目录

[root@s25linux conf]#
[root@s25linux conf]# mkdir /s25linux   /s25python
[root@s25linux conf]#
[root@s25linux conf]#
[root@s25linux conf]# echo "i like linux ,i very  happy"  >  /s25linux/index.html
[root@s25linux conf]#
[root@s25linux conf]#
[root@s25linux conf]# echo "i use python,i very  nb"  >  /s25python/index.html#注意,改了配置文件,一定要平滑重启,否则不生效[root@s25linux conf]# nginx  -s reload#此时分贝访问2个站点,即可看到2个站点的资料
192.168.178.140:85
192.168.178.140:85

4nginx的404页面优化

4.1修改nginx.conf,修改一行参数即可

server {# 定义该网站的端口listen       85;#填写域名,没有就默认即可server_name  localhost;#更改nginx的编码支持charset utf-8;# 如此添加一行参数,当用户请求出错,出现404的时候,就返回 root定义的目录去寻找40x.html文件# 讲师机器的配置,也就是去  /s25python/ 这个目录下 寻找 40x.htmlerror_page  404  /40x.html;   #注意别忘了分号......手动创建一个40x.html,咱们也可以去网上搜索404的html模板,修改此40x.html即可
[root@s25linux conf]# cat /s25python/40x.html<meta charset=utf8>我是自定义的404页面,你看我美不美...注意还得重启nginx
nginx -s reload

5.Nginx的访客日志

nginx的方可日志,能够记录,分析用户的请求行为
-什么时间点,访问的最频繁,比如路飞的网站,网站的流量,基本都在晚上,学生下了班,在线学习各种技术
-记录用户的请求频率,以此检测是否是爬虫等恶意请求,进行封禁。
-检测躲在代理ip后的 真实用户ip
-检测用户ip,请求时间,请求的url内容,等等。。。。

5.1如何配置日志呢

修改nginx.conf  在 http{}代码块中,打开如下注释即可#打开此nginx的访问日志功能,即可查看日志log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#如果25期所有学生,在班级,同时访问路飞官网
# nginx日志检测到的ip地址是一样,还是不一样的?
# 答案是一样的,因为大家都从同一路由器转发出去的公网
# 我们都是通过同一个宽带运营商提供的公网ip和路飞通信的access_log  logs/access.log  main;日志变量解释$remote_addr    记录客户端ip
$remote_user    远程用户,没有就是 “-”
$time_local    对应[14/Aug/2018:18:46:52 +0800]
$request     对应请求信息"GET /favicon.ico HTTP/1.1"
$status      状态码
$body_bytes_sent  571字节 请求体的大小
$http_referer  对应“-”  由于是直接输入浏览器就是 -
$http_user_agent  客户端身份信息,以此可以nginx判断,用户客户端是手机浏览器,就转发移动端页面给与用户
如果是pc的客户端,就转发给pc页面给与用查看$http_x_forwarded_for  记录客户端的来源真实ip 97.64.34.118,机器A用机器B的ip去访问,可以抓出机器A的地址,这个参数不是万能的,爬虫和反扒是相互的。。。重启nginx -s reload 实时监测访客日志的信息

6.nginx反向代理

需要准备2台linux服务器

192.168.178.134

192.168.178.140

6.1 第一个server{}标签,用于反向代理的作用,修改nginx.conf如下

    #   第一个虚拟主机的配置,作用是反向代理了#server {listen       80;server_name  localhost;charset utf-8;error_page  404  /40x.html;# 这里的locaiton 路径匹配,如果你写的是root参数,就是一个web站点功能# 如果你写的是proxy_pass参数,就是一个请求转发,反向代理功能location / {#当请求发送给  192.168.178.140:80的时候#直接通过如下的参数,转发给90端口proxy_pass  http://192.168.178.140:90;}}

6.2第二个server{}标签,作用是返回机器上的资料,也就是一个web站点的功能

#第二个虚拟主机,作用是web站点功能,资源服务器,提供页面的
server  {listen 90;
server_name  _;
#当请求来到   192.168.178.140:90的时候,就返回/s25proxy目录下的index.html
location  / {root   /s25proxy/;index  index.html;
}}创建资源文件夹,以及html页面内容
[root@s25linux conf]# cat /s25proxy/index.html
<meta charset=utf8>我是资源服务器,我是192.168.178.140 的90端口重启nginx
nginx -s reload

7.nginx负载均衡

第一个虚拟主机server{}的作用,是反向代理,80端口

  # 用upstream关键词定义负载均衡池,写入资源服务器的地址# 负载均衡的算法,默认是轮询机制,一台服务器处理一次upstream  s25real_server  {server   192.168.178.140:90;
server  192.168.178.140:95;
}server {listen       80;server_name  localhost;charset utf-8;error_page  404  /40x.html;# 这里的locaiton 路径匹配,如果你写的是root参数,就是一个web站点功能# 如果你写的是proxy_pass参数,就是一个请求转发,反向代理功能location / {#当请求发送给  192.168.178.140:80的时候#直接通过如下的参数,转发给90端口proxy_pass  http://s25real_server;}}

第二个server{}标签的配置,作用是提供资源给用户看的,90端口

#第二个虚拟主机,作用是web站点功能,资源服务器,提供页面的
server  {listen 90;
server_name  _;
#当请求来到   192.168.178.140:90的时候,就返回/s25proxy目录下的index.html
location  / {root   /s25lol/;index  index.html;
}}

第三个server{}标签的作用,同样是返回资源页面,查看负载均衡效果的,95端口

#第三个server{}虚拟主机,作用是 提供资源服务器的内容的
server {listen 95;
server_name _;
location   /   {root  /s25dnf/;
index  index.html;}
}

此时分别准备2个资源服务器的内容

准备好 /s25lol/index.html
准备好  /s25dnf/index.html

8.nginx负载均衡算法

1.默认是轮询机制,每台服务器处理一次
2.加权轮询,修改nginx.conf如下,给与机器不同的权重upstream  s25real_server  {server   192.168.178.140:90 weight=4;
server  192.168.178.140:95 weight=1;
}

nginx配置文件实用干货相关推荐

  1. 在线一键生成网页版 Nginx 配置文件

    1 在线一键生成网页版 Nginx 配置文件 介绍 NginxWebUI是一款方便实用的 nginx 网页配置工具,可以使用 WebUI 配置 Nginx 的各项功能,包括端口转发,反向代理,ssl ...

  2. Nginx配置文件nginx.conf中文详解(转)

    ######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组 user www www;#nginx进程数,建议设置为等于CPU总核心数. worker_pr ...

  3. [Nginx优化]分享nginx配置文件及优化说明

    1.系统及内核方面     根据服务器用途,建议系统最小化安装或针对web服务器进行系统内核重新编译:在内核参数的一些优化,如下: # Add net.ipv4.tcp_max_syn_backlog ...

  4. Linux下查找nginx配置文件路径

    1.查看nginx进程 ps -aux | grep nginx 2.测试Nginx配置文件 /usr/local/nginx/sbin/nginx -t

  5. Linux下查找Nginx配置文件位置

    1.查看Nginx进程 命令: ps -aux | grep nginx 圈出的就是Nginx的二进制文件 2.测试Nginx配置文件 /usr/sbin/nginx -t 可以看到nginx配置文件 ...

  6. python修改nginx配置文件_zookeeper 动态管理nginx配置

    假设我们有一个场景,所有服务器共享同一份配置文件,我们肯定不可能单独手动维护每台服务器,这时可以利用zookeeper的配置管理功能. 环境:python + nginx + zookeeper 目的 ...

  7. nginx配置文件及工作原理详解

    nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...

  8. Nginx配置文件粗解

    为什么80%的码农都做不了架构师?>>>    上一篇搭建了nginx+php基本环境,这一篇专门来学习nginx配置文件,以及怎样让nginx支持php,nginx的配置文件结构类 ...

  9. 搭建nginx服务、nginx的升级安装、Nginx配置文件的解析、web页面用户认证

    一,Nginx安装 1.安装nginx #  yum -y install gcc pcre-devel openssl-devel                              //安装 ...

最新文章

  1. nginx telnet sshd
  2. 在C#中SendMessage和PostMessage的参数传递
  3. lvs在nat dr tun 模型的实现
  4. 【Git+Docker】Docker初期学习认识和安装配置详解
  5. Maven的作用总结
  6. oracle基本的操作命令,oracle命令基本操作
  7. 重学C++语言之路:C++语言学习工具和环境
  8. container of()函数简介
  9. 文字投影_DLP投影仪指标含义汇总(文字稿)
  10. PHP获取对象的hashcode_php 字符串转hashcode(包括中文)
  11. 经常会用到的ocr文字识别工具:Text Scanner for Mac
  12. IntelliJ 中类似于Eclipse ctrl+o的是ctrl+F12
  13. 狂神说Redis学习笔记
  14. 网站打开速度的查询 测试
  15. 【操作系统实验】模拟单处理器系统的进程调度
  16. 基于java的高校运动会管理系统的设计与实现--毕业论文(可仅作参考)
  17. 为Python程序添加桌面快捷方式
  18. android 图片处理过程中添加进度条,[Android] 随时拍图像处理部分总结及源码分......
  19. Verilog 中signed和$signed()的用法
  20. SwiftUI 问答之更改 TabView 选项卡时如何运行函数

热门文章

  1. nginx expires 缓存
  2. [无线] Android 系统开发学习杂记
  3. 计算机学院实验员岗位基本知识,实验室人员岗位职责
  4. 开源免费关系数据库模型建模工具
  5. eureka源码流程分析
  6. 网站服务器错误显示500要怎么解决方法,什么是服务器500错误?500错误解决办法大全...
  7. unity 控制物体移动的三种方法
  8. 公有云和私有云的区别有哪些
  9. 新技术加速隐私暴露,我们该怎么办?(三)
  10. 使用老毛桃进行uefi下的win10备份