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和反向代理服务器,高并发处理很不错. ②.反向代理:在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂 ...
随机推荐
- 如何解决oracle数据库过期的情况
之前用的数据库都是开源的,在另一台电脑上安装的时候,居然有时间限制,只能用30天.安装了好多次都是这样,就这样,三十天一破解.破解方法如下: 不管是快要过期了还是已经过期了,都可以用这个方法. 1.在 ...
- java:关于继承变量的值问题
1.在java中,如果子类继承父类的静态变量时,当你在子类面前修改这个静态变量的值,其父类的静态变量也会改变. 案例: //父类public class Animal { //静态属性 public ...
- Java程序,取随机数的两种实现方法
1.随机数的第一种程序(取0-9的整型随机数) public class random_1 { public static void main(String[] args) { Random r=ne ...
- [Python] Removing a non-empty folder
Removing a non-empty folder You will get an ‘access is denied’ error when you attempt to use os.remo ...
- [Leetcode][JAVA] Minimum Depth of Binary Tree && Balanced Binary Tree && Maximum Depth of Binary Tree
Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. The minimum depth is the n ...
- bfc+css
CSS BFC的定义 是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用.在创建了 Block Formatting Context 的元素 ...
- 后台设置gridview不换行
GridView1.Style.Add("word-break", "keep-all"); GridView1.Style.Add(&q ...
- ASP.Net的导出Excel的快速方法,DataTable导出Excel(亲测,非原创)
//使用方法 ExcelHelper.dataTableToCsv(dt,@"D:\1212.xls");System.Diagnostics.Process.Start(@&qu ...
- CCNA第四章第五章Cisco的IOS与SDM及其管理考试要点学习笔记
1. IOS的用户界面 Cisco互联网操作系统(IOS)是思科路由器和大多数交换机的核心,它是一个可以提供路由,交换,网络互联以及远程通信功能的专有内核. Cisco路由器的IOS软件 ...
- bower 问题
没法写成bower install jquery bootstrap:只能是bower install jquery; bower install bootstrap