nginx配置文件详细说明
操作系统: Debian8
软件版本: nginx 1.6.2
配置文件说明:
nginx默认配置文件为/etc/nginx/nginx.conf,可以在运行命令中-c指定配置文件。
# 运行用户
user www-data;
# 启动进程,通常设置成和cpu的数量相等
worker_processes 1;
# 全局错误日志及PID文件
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
# 工作模式及连接数上限
events {
use epoll; # epoll是多路复用IO(I/O Multiplexing)
worker_connections 1024; # 单个后台worker process进程的最大并发链接数
# multi_accept on;
}
# 设定http服务器
http {
# 访问日志
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
#开启gzip压缩
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
# server的配置(后边详细介绍)
server {
}
# 从文件导入其他的server配置
# 其中sites-enabled目录下都是指向sites-available目录中的软链接,
# 建议用户自己添加的配置都放在sites-available目录中,然后软链接至sites-enabled目录;
# 需要临时关闭的话,可以删除sites-enabled中的软链接,恢复时重建链接即可。
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
# 设定mail服务器
#mail {
#}
# 设定rtmp 服务器
#rtmp {
# server {
# }
#}
server配置项详细说明: 并不需要所有的条目,无用的条目可以删减去
server {
# 侦听端口:可侦听多个端口,以空格分隔
listen 80 default_server;
# 绑定域名:可以绑定多个域名,以空格式分隔
server_name oroct.com www.oroct.com blog.oroct.com;
# 设定访问日志
access_log logs/oroct.com.access.log main;
# 默认请求
location / {
# 定义服务器的默认网站根目录位置
root /var/www;
# 定义首页索引文件的名称
index index.php index.html index.htm;
# php相关配置
fastcgi_pass unix:/var/run/www/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
# 重写向不存在的页面
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php last;
}
}
# 定义错误提示页面
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# root /var/www/error;
# }
# 静态文件,nginx自己处理
# 静态文件不怎么更新,过期可以设大一点,
# 如果频繁更新,则可以设置得小一点。
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
expires 30d;
}
# 也可以单独把PHP部分摘出来
#location ~ \.php$ {
#}
# 设定查看nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
# 禁止访问 .htxxx 文件
location ~ /\.ht {
deny all;
}
}
配置端口转发:
server {
server_name git.doit.pub;
location / {
# 代理地址及端口
proxy_pass http://127.0.0.1:3000;
# 修改转发请求头
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
未绑定域名访问: 关键字一个下划线_
server {
listen 80 default_server;
server_name _;
root /var/www/default;
# 通过include简化php配置语句
include /etc/nginx/fastcgi_php;
location / {
index index.php index.html;
}
}
如果不设置的话,一般会指向第一个server的配置,所以这个一定要注意,也可以通过return 404返回错误。
server {
listen 80 default_server;
server_name _;
return 404;
}
配置https服务:
server {
# https监听端口为443
listen 443;
# 指定证书
ssl on;
ssl_certificate /etc/nginx/ca/server.crt;
ssl_certificate_key /etc/nginx/ca/server_nopwd.key;
# 下边的设置基本都差不多了
# ......
}
配置rtmp服务:
# 配置RTMP服务(RTMP章节详细说明)
rtmp {
server {
listen 1935; # 服务端口
chunk_size 4096; # 数据传输块的大小
application vod {
# 视频文件存放位置。
play /opt/video/vod;
}
application vod2 {
play /opt/video/vod2; ;
}
application live{
}
application hls{
}
}
}
https://www.jianshu.com/p/0a6f0b425b7f
配置负载均衡:
http {
.............
#设定负载均衡的服务器列表
upstream mysvr {
# weigth参数表示权值,权值越高被分配到的几率越大
# 开启本机上的Squid的3128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;
server 192.168.8.3:80 weight=6;
}
}
https://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html
avr-gcc安装与使用
1.安装binutils
下载地址:http://ftp.gnu.org
#tar -jxvf binutils-2.21.tar.bz2
#cd binutils-2.21
#./configure --target=avr --prefix=/usr/local/atmel
#make
#make install
添加 /usr/local/atmel/lib 到 /etc/ld.so.conf文件中
添加 export PATH=${PATH}:/usr/local/atmel/bin到 /etc/bashrc
配置说明:
--target=avr
--prefix=/usr/local/atmel
2.安装avr-gcc编译器
下载地址:http://ftp.gnu.org
#tar -jxvf gcc-core-4.1.2.tar.bz2
#cd gcc-4.1.2
#./configure --target=avr --prefix=/usr/local/atmel --disable-nls --enable-language=c --disable-libssp
#make
#make install
配置说明:
--target=avr
--prefix=/usr/local/atmel
--enable-language=c //这里也可以添加c++
--disable-nls
--disable-libssp //新的gcc版本可能参需要此选项,否则编译时出错
3.安装avr c语言库
下载地址:http://savannah.nongnu.org/
设置一些环境变量(bash语法):
#export CC=avr-gcc
#export AS=avr-as
#export AR=avr-ar
#export RANLIB=avr-ranlib
编译安装
#tar -jxvf avr-libc-1.7.0.tar.bz2
#cd avr-libc-1.7.0
#./configure --target=avr --prefix=/usr/local/atmel --host=avr
#make
#make install
配置说明:
--target=avr
--prefix=/usr/local/atmel
--host=avr
注意事项:
本文档在RHEL5.4中安装成功;
各工具版本不一定要最新,能用即可,特别是gcc-core最好不要比当前系统运行的gcc版本高,否则有可能不能配置和编译。
如果编译gcc的时候出下面的错误:
libssp/ssp.c:168: error: too many arguments to function 'fail'
配置时候添加 --disable-libssp参数即可。
测试程序
/************* 测试程序 *********/
#include <avr/io.h>
//简单的延时程序
void delayms(unsigned char ntime)
{
unsigned char temp;
while(ntime){
ntime--;
temp = 0xff;
while(temp){temp--;}
temp = 0xff;
while(temp){temp--;}
temp = 0xff;
while(temp){temp--;}
temp = 0xc0;
while(temp){temp--;}
}
}
//主程序
int main(void)
{
delayms(200);
DDRA = 0xFF;
PORTA = 0x55;
delayms(200);
//程序主循环
while(1)
{
PORTA = ~PORTA;
delayms(200);
asm("NOP"); //嵌入汇编
}
return 0;
}
Makefile
################## Makefile ############################
PRG = main
OBJ = $(PRG).o
MCU_TARGET = atmega32
OPTIMIZE =
DEFS =
LIBS =
#################指定编译器类型#########################
CC = avr-gcc
#######################################################
# Override is only needed by avr-lib build system.
override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
override LDFLAGS = -Wl,-Map,$(PRG).map
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
all: $(PRG).elf text $(PRG).lst
$(PRG).elf: $(OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
lst: $(PRG).lst
%.lst: %.elf
$(OBJDUMP) -h -S $< > $@
#######################################################
# Rules for building the .text rom images
text: hex bin
hex: $(PRG).hex
bin: $(PRG).bin
%.hex: %.elf
$(OBJCOPY) -j .text -j .data -O ihex $< $@
%.bin: %.elf
$(OBJCOPY) -j .text -j .data -O binary $< $@
#######################################################
clean:
rm -rf *.o *.elf *.hex *.bin
rm -rf *.lst *.map
#######################################################
SQL语法基本用法
查询记录
语法格式:
SELECT item FROM table_name WHERE conditions;
查询name为Simth,并且age < 30的记录
SELECT * FROM my_table WHERE name = 'Smith' AND age < 30;
查询birth字段值为空的记录
SELECT * FROM pet WHERE ISNULL(birth);
查询记录数
SELECT COUNT(*) FROM my_table;
从表users中只查询name字段和main字段(输出为Email字段)
SELECT name, mail as Email FROM users;
降序排列
SELECT * FROM my_table ORDER BY id DESC;
升序排列
不指明默认为升序ASC
SELECT * FROM my_table ORDER BY id;
代码插件测试
如果看到代码是完整且整齐的,则说明插件测试成功.
/* * 功能描述: DES单元运算 * 参数列表: Out - 8字节运算结果 * In - 8字节数据 * pSubKey - 过程密钥 * Typde - {ENCRYPT(加密),DECRYPT(解密)} * 返 回 值: 无 */ void SingleDes(char Out[8], char In[8], char Type) { int i = 0; char M[64], tmp[32]; char *Li = &M[0]; char *Ri = &M[32]; memset(M, 0, sizeof(char)*sizeof(M)); memset(tmp, 0, sizeof(char)*sizeof(tmp)); ByteToBit(M, In, 64); Transform(M, M, IP_Table, 64); //初始置换(IP置换) if( Type == ENCRYPT ) { for(i=0; i<16; i++) { memcpy(tmp, Ri, 32); //保存右半部分 F_func(Ri, (*pSubKey)[i]); //对右半部分和密钥进行操作 Xor(Ri, Li, 32); //右半部分与左半部分异或操作 memcpy(Li, tmp, 32); //原来的右半部分放至左半部分 } } else { for(i=15; i>=0; i--) //加密和解密只是顺序不同 { memcpy(tmp, Ri, 32); F_func(Ri, (*pSubKey)[i]); Xor(Ri, Li, 32); memcpy(Li, tmp, 32); } } RotateL(M,64,32); //左右交换(循环移位) Transform(M, M, IPR_Table, 64); //逆初值置换(IPR置换) BitToByte(Out, M, 64); //bit流转换为字节 }