nginx 配置管理 - 简单也复杂
由于涉及到h5与后端交互,跨域问题,所以公司的开放测试服务器让我们自己搞nginx。顺便提升一下nginx的实践。
nginx的安装,没什么难度了,百度一堆,如果源码安装就一步步来吧。(最简单的方式:yum install nginx (centos), apt-get install nginx(ubuntu))
nginx.conf,作为最外层的配置文件,主要设置一些基础的配置就好了,如内存配置,日志格式配置,线程配置等,最后使用一个include conf.d/* 将其他配置文件包含进来即可。
【nginx.conf 基础配置】
user nginx;
worker_processes auto; error_log /data/var/log/nginx/error.log debug;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections ;
} # load modules compiled as Dynamic Shared Object (DSO)
#
#dso {
# load ngx_http_fastcgi_module.so;
# load ngx_http_rewrite_module.so;
#} http {
include mime.types;
default_type application/octet-stream;
autoindex off;
server_tokens off; server_names_hash_bucket_size ;
client_header_buffer_size 32k;
large_client_header_buffers 32k;
client_max_body_size 20m;
client_body_buffer_size 256k; sendfile on;
tcp_nopush on;
keepalive_timeout ;
tcp_nodelay on; fastcgi_connect_timeout ;
fastcgi_send_timeout ;
fastcgi_read_timeout ;
fastcgi_buffer_size 128k;
fastcgi_buffers 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k; gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_comp_level ;
gzip_min_length 1k;
gzip_buffers 16k;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css application/xml application/javascript; log_format main '$request_time $upstream_response_time $remote_addr - $upstream_addr [$time_local] '
'"$host" "$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio" "$http_x_forwarded_for" - "$server_addr" '; access_log /data/var/log/nginx/access.log main; include conf.d/*.conf; }
【conf.d/*, 具体的域名配置,http://】
upstream 3ctest_x123_com {
server 192.168.1.103:;
keepalive ;
}
upstream mytest_x123_com {
server 192.168.1.103:;
keepalive ;
}
upstream 3capi_x123_com {
server 192.168.1.103:;
keepalive ;
}
upstream yhapi_x123_com {
server 192.168.1.103:;
keepalive ;
}
server {
listen ;
server_name 3ctest.x123.com;
location / {
proxy_pass http://3ctest_x123_com;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
}
}
server {
listen ;
server_name mytest.x123.com;
location / {
proxy_pass http://mytest_x123_com;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
}
}
server {
listen ;
server_name 3capi.x123.com;
location / {
proxy_pass http://3capi_x123_com;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
}
}
server {
listen ;
server_name yhapi.x123.com;
location / {
proxy_pass http://yhapi_x123_com;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
}
}
server {
listen ;
server_name 192.168.1.22;
location / {
proxy_pass http://192.168.1.22;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
}
}
upstream 192.168.1.22 {
server 192.168.1.22:;
keepalive ;
}
【Https:// 配置】
server {
listen ssl;
server_name wx.mysite1.com;
ssl on;
ssl_certificate /etc/nginx/conf.d/ssl/mysite1.crt;
ssl_certificate_key /etc/nginx/conf.d/ssl/mysite1.key;
ssl_session_cache shared:SSL:200m;
ssl_session_timeout 20m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1. TLSv1.;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
location / {
#proxy_set_header Host $http_host;
#proxy_set_header Host $http_host;
#proxy_set_header X-Forwarded-For $remote_addr;
# online
#proxy_redirect http://192.168.1.22/ http://$http_host/;
#proxy_pass http://shmc.mysite1.com;
#proxy_pass http://192.168.1.22/;
#index index.html;
#root /data/www/;
# if ( $cookie_COOKIE ~* "(.*)$") {
# set $all_cookie $;
# }
# proxy_set_header Cookie "$http_cookie; node_id=018";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
add_header Access-Control-Allow-Origin *;
proxy_pass http://192.168.1.22;
proxy_redirect off;
}
}
server {
listen ;
server_name wx.mysite1.com;
location / {
proxy_set_header Host $host;
# online
#proxy_redirect http://192.168.1.22/ http://$http_host/;
#proxy_pass http://shmc.mysite1.com;
proxy_pass http://192.168.1.22/;
#index index.html;
#root /data/www/;
}
}
如上参考,应该可以解决大部分配置情况。
需要注意的是,nginx作为反向代理服务器,很多变量需要作特别转发,如ip地址,有问题可以先查看日志,如果语法错误,则不会被保存,这个比较好!
nginx作为负载均衡的重要软件,略加掌握总归是好的吧。
其实也不难,但是没有实战的谈话总是显得苍白无力!要做到好也不简单,一个简单的优化,可以让你的用户体验更好,服务器利用率更高,有得搞!
勉励吧诸君!
nginx 配置管理 - 简单也复杂的更多相关文章
- nginx知识点简单回顾
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Centos6.7配置Nginx+Tomcat简单整合
系统环境:Centos 6.7 软件环境:JDK-1.8.0_65.Nginx-1.10.3.Tomcat-8.5.8 文档环境:/opt/app/ 存放软件目录,至于mkdir创建文件就不用再说了 ...
- nginx+keepalived简单双机主从热备
双机主从热备概述 可以两台机子互为热备,平时各自负责各自的服务.在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续 ...
- Linux yum的配置 , python环境管理, nginx搭建简单学习
Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...
- 以实际的WebGIS例子探讨Nginx的简单配置
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...
- Nginx个人简单理解
首先我们来补充下一些基本知识: 什么是代理服务器? 先举个简单的例子,现在我们在百度访问谷歌的网站,发现现在进不去,这个时候我们可以FQ(关于FQ,可以借鉴下这个博文:http://zhangge.n ...
- Linux下Nginx+PHP 简单安装配置
测试环境 Linux 2.6.18nginx-1.0.4 http://www.nginx.org/php-5.3.6 http://www.php.net/ 一,安装Nginxwget http:/ ...
- nginx日志简单分析工具
自己有个tony6.com的服务器,上面挂着我的博客,web服务器是nginx. 由于最近一直在折腾python,所以简单写了个nginx日志分析工具,它可以分析出每个IP的点击数量和IP所在地. # ...
- Linux安装Nginx以及简单理解
1.Nginx简单介绍 ①.Nginx:一个高性能的HTTP和反向代理服务器,高并发处理很不错. ②.反向代理:在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂 ...
随机推荐
- 【12-JDBC编程】
JDBC编程 JDBC概述 •通过使用JDBC API,Java程序可以非常方便地操作各种主流数据库,这是使Java语言的巨大 魅力所在.而且由于Java语言的跨平台特性,所以使用JDBC API所编 ...
- viewpage 循环滑动播放图片
一般来说,viewpage 只支持图片的顺序滑动播放,在滑到边界时就再也滑不动了,如果要想继续滑动,只能向两边额外增加一张相片,即把第一张相片的位置放在最后一张图片的后面,给用户的感觉我继续滑就滑到了 ...
- 关于PDV的那些事
数据集中的数据来源分为两种: 一.来自于另一个数据集: 二.来自于外部数据源(本文细说此来源): 无论是哪种来源,在它们成为目标数据集中的观测行(官方叫它observation)之前都要进入PDV,先 ...
- 51单片机对无线模块nRF24L01简单的控制收发程序
它的一些物理特性如工作频段.供电电压.数据传输速率就不详细介绍了,直接上代码. 1.首先是发送端: // Define SPI pins #include <reg51.h> #defin ...
- 关于MFC文本框输入内容的获取 与 设置文本框的内容
八月要开始做界面了<( ̄︶ ̄)/,然而目前只会用MFC╮(╯▽╰)╭ 好吧,言归正传,设置好文本框后,要获取用户输入的内容,可以用: GetDlgItemText() ; 这个函数有两个参数,第 ...
- 给自己的Unity添加声音文件
下面说明一下,在Unity 里是怎么样加载声音文件的. Unity同时支持单声道和立体声音频资产. Unity支持导入以下音频文件格式:.aif, .wav, .mp3, 和 .ogg,和以下音轨模块 ...
- 关于Apache日志的统计
统计apache日志文件里访问量前十的ip并按从多到少排列 五月 31, 2012 by FandLR Filed under Linux Leave a comment 解法1: cat acc ...
- 播放一个视频并用滚动条控制进度-OpenCV应用学习笔记二
今天我们来做个有趣的程序实现:利用OpenCV读取本地文件夹的视频文件,并且在窗口中创建拖动控制条来显示并且控制视频文件的读取进度. 此程序调试花费了笔者近一天时间,其实大体程序都已经很快写出,结果执 ...
- linux-9基本命令之-wget
1.wget 命令用于下载网络文件,格式:"wget[参数] 下载地址" wget 参数 -b 后台下载模式 -O 下载到指定的目录 -t 最大尝试次数 -p 下载页面内所有的资源 ...
- java反射机制初探
最近和一位师兄交流了一下Java,真可谓是大有收获,让我好好的学习了一下javad的反射机制,同终于明白了spring等框架的一个基本实现的思想,那么今天就和大家分享一下java的反射机制. 反射,r ...