Nginx 配置解析
概述:本篇文章主要对Nginx配置文件中一些常用配置进行了讲解,和如何使用Docker进行安装Nginx。因为该文章是回首在工作闲暇之余整理的,还有待完善,如果有疑义和更好的建议的朋友可以留言给我。
#运行用户,默认即是nginx,可不设置
#user nobody;
#nginx进程,一般设置为和cpu核数一样
worker_processes 1;
#;单个后台worker process进程的最大并发链接数
events {
worker_connections 1024;
}
http {
#文件扩展名与类型映射表
include mime.types;
#默认文件类型
default_type application/octet-stream;
#开启高效传输模式
sendfile on;
#连接超时时间,单位是秒
keepalive_timeout 65;
server {
#监听端口
listen 80;
#映射域名
server_name www.abc.com;
#可以实现多种编码识别
charset utf-8;
#nginx添加自定义header.表明,该资源可以被任意外域访问,用作跨域请求使用
add_header Access-Control-Allow-Origin *;
location / {
#请求转向mysvr 定义的服务器列表
proxy_pass http://192.168.126.1:9000/;
#用来在后端获取用户发送过来的请求头
proxy_set_header Host $host;
#用来获取客户端的IP
proxy_set_header Remote_Addr $remote_addr;
#在后端这样获取:request.getAttribute("X-real-ip")
proxy_set_header X-Real-IP $remote_addr;
#后端通过request.getAttribute("X-Forwarded-For")获得的将会是客户端ip和第一台nginx的ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#访问http://192.168.126.1:9000/的路径会被映射到index.html
index index.html;
}
location ~ ^/(hryfilefront) {
proxy_pass http://192.168.126.1:9000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
location ~ ^/(hryfile) {
proxy_pass http://192.168.126.1:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name manage.abc.com ;
charset utf-8;
location ~ ^/(manage) {
proxy_pass http://192.168.126.1:9002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ ^/(hryfile) {
proxy_pass http://192.168.126.1:9002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ ^/(oauth) {
proxy_pass http://192.168.126.1:9001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ ^/(hryfilefront) {
proxy_pass http://192.168.126.1:9002;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
location ~ ^/(hryfile) {
proxy_pass http://192.168.126.1:9002;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
location ~ ^/(admin) {
root /usr/share/nginx/html/admin;
index index.html;
}
}
server {
listen 80;
server_name hq.abc.com ;
charset utf-8;
location / {
proxy_pass http://192.168.126.1.25:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
安装命令解析
docker pull nginx:1.12.2
docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -p $1:80:80 --name nginx -v /data/yjs/nginx/html:/usr/share/nginx/html -v /data/yjs/nginx/logs:/var/log/nginx -v /data/yjs/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx:1.12.2
解析后:
#拉取版本1.12.2的nginx
docker pull nginx:1.12.2
#-i: 以交互模式运行容器,通常与 -t 同时使用;
#-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
#-d: 后台运行容器,并返回容器ID;
#通过--restart选项,可以设置容器的重启策略,以决定在容器退出时Docker守护进程是否重启刚刚退出的容器。
#unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
docker run -itd --restart=unless-stopped
# 同步时区
-v /etc/localtime:/etc/localtime
-v /etc/timezone:/etc/timezone
#开放端口,并映射到本地的 80 端口。
-p $1:80:80 --name nginx
#挂载到绝对路径下
-v /data/yjs/nginx/html:/usr/share/nginx/html
-v /data/yjs/nginx/logs:/var/log/nginx
-v /data/yjs/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx:1.12.2
参考资源路径:
nginx add_header指令使用方法
nginx proxy_set_header设置、自定义header
nginx location正则写法
nginx配置文件nginx.conf超详细讲解
注意事项:
- 配置路径要为绝对路径
- 上面的域名要想可以访问,要使用域名信息备案过的域名方可
Nginx 配置解析的更多相关文章
- 初识nginx——配置解析篇
一.nginx的介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 二.nginx的配置 nginx的 ...
- 003.Nginx配置解析
一 Nginx配置文件 1.1 Nginx主配置 Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织,通常每一个区块以一对大括号{}来 ...
- Nginx配置解析
#运行用户,默认即是nginx,可不设置 #user nobody; #nginx进程,一般设置为和cpu核数一样 worker_processes 1; #;单个后台worker process进程 ...
- nginx配置解析之客户端真实IP的传递
前后端分离之后,采用nginx作为静态服务器,并通过反向代理的方式实现接口跨域的方式,在降低开发成本的同时也带来了诸多问题,例如客户端真实IP的获取. 在一些特殊场景下,比如风控和支付流程,往往需要获 ...
- NGINX(四)配置解析
前言 nginx配置解析是在初始化ngx_cycle_t数据结构时,首先解析core模块,然后core模块依次解析自己的子模块. 配置解析过程 nginx调用ngx_conf_parse函数进行配置文 ...
- php php-fpm安装 nginx配置php
centos 6.2 linux下安装php5.6.6源码 PHP在 5.3.3 之后已经把php-fpm并入到php的核心代码中了. 所以php-fpm不需要单独的下载安装.要想php支持php-f ...
- Nginx 原理解析和配置摘要
前言 Nginx 作为高性能的 http 服务器,知名度不必多言,相似产品中无出其右.本篇随笔记录我认为较为重要的原理和配置. 1. 原理解析 1.1 结构 以上是 Nginx 的结构图,其包含一个 ...
- [Linux.NET]Nginx 泛解析配置请求映射到多端口实现二级域名访问
由于想实现一个域名放置多个应用运行的目的,而不想通过域名后加端口号方式处理,这种方式处理记起来太麻烦,偷懒党简直不能忍,故而考虑了使用二级域名来处理多个应用同时运行.Google了一番资料并进行了尝试 ...
- Nginx 泛解析配置请求映射到多端口实现二级域名访问
由于想实现一个域名放置多个应用运行的目的,而不想通过域名后加端口号方式处理,这种方式处理记起来太麻烦,偷懒党简直不能忍,故而考虑了使用二级域名来处理多个应用同时运行.Google了一番资料并进行了尝试 ...
随机推荐
- Selenium(Python)调用pywin32上传图片
import unittestfrom time import sleep import osfrom selenium import webdriverimport win32apiimport w ...
- java后台接收微信服务号/订阅号消息
1.申请订阅号(适合个人)或者服务号(适合企业) 微信公众平台 2.填写配置 服务器地址: 需要接收消息 的服务端接口地址 令牌:通话识别码,随便写,后端接收时,使用一样的就可以了. 消息加密秘钥 : ...
- Vue 编程之路(二)——跳转页面传值
最近公司的一个项目中使用 Vue 2.0 + element UI 实现一个后台管理系统的前端部分,属于商城类型.其中我负责的部分有一项需要跳转页面,由于跳转前的页面是多个组件构成的,所以在跳转页面的 ...
- JS里点击事件判断是否 触发了节点 和给标签添加class属性
$("#activityType").click(function(e){ if(e.target==$("#bb")[0]){ var bb=document ...
- 原生js实现轮播图原理
轮播图的原理1.图片移动实现原理:利用浮动将所有所有照片依次排成一行,给这一长串图片添加一个父级的遮罩,每次只显示一张图,其余的都隐藏起来.对图片添加绝对定位,通过控制left属性,实现照片的移动. ...
- 使用js跳转手机站url的若干注意点
引子: 去年年底公司开发手机站平台,经历了前期的用户群.市场调查,产品需求分析,产品原型设计,ui前端到程序开发上线测试等等工作,终于上线...此处略去本人作为前端开发的心情. 应该说,我们的手机站平 ...
- yun rpm
RPM:RedHat Package Manager的简称,是一种数据库记录的方式的管理机制.当需要安装的软件的依赖软件都已经安装,则继续安装,否则不予安装. 特点:1.已经编译并打包完成2.软件的信 ...
- Ubuntu—安装并运行sublime
step1 到官网看看 https://www.sublimetext.com/3 step2 根据版本选择,我的是32位的 step3 ubuntu终端安装 (1)切换目录 -$ cd /opt ...
- 彻底删除win10的 Windows Defender
使用删除工具和一些教程,都无法删除,最后找到了这个: https://www.newasp.net/soft/351946.html 关闭掉服务后,在C盘全盘搜索,删除,完成了
- JavaScript初探系列之数组的基本操作
在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活.强大,不像是Java等强类型高级语言数组只 ...