1、
vi /home/data/docker/web/nginx/start.sh 没有就要生成:
#!/bin/sh
sleep 3
#/usr/local/servers/nginx19/sbin/nginx -c /usr/local/servers/nginx19/conf/nginx.conf
/usr/local/servers/nginx126/sbin/nginx -c /usr/local/servers/nginx126/conf/nginx.conf
/bin/bash
chmod u+x /home/data/docker/web/nginx/*.sh
mkdir /home/data/docker/web/vhost
mkdir /home/data/docker/web/cert
mkdir /home/data/docker/web/html
2、
docker pull gg22mm/phpsys:nginx126_v2
chmod u+x /home/data/docker/web/nginx/*.sh
docker run -d -t --name nginx126 --network=host --restart=always -v /home/data/docker/web:/usr/local/servers/web:rw gg22mm/phpsys:nginx126_v2 /usr/local/servers/web/nginx/start.sh
docker exec -ti nginx126 /bin/bash
ps -ef | grep nginx
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //更新时间, 填: yes
date -R # 查看当前时间 nginx配置紧参考:
vi /usr/local/servers/nginx126/conf/nginx.conf
#运行用户
user web;
worker_cpu_affinity auto;
#worker_processes 8;
#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
pid /usr/local/servers/web/nginx/log/nginx.pid; #我里从新定义了
worker_rlimit_nofile 100000; #更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比'ulimit -a'更多的文件,所以把这个值设高,这样nginx就不会有'too many open files'问题了。
events {
worker_connections 50000; #设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。记住,最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处。
multi_accept on; #告诉nginx收到一个新连接通知后接受尽可能多的连接。
use epoll; #设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll。如果你使用*BSD,你应该使用kqueue。
}
http {
include mime.types; #只是一个在当前文件中包含另一个文件内容的指令。这里我们使用它来加载稍后会用到的一系列的MIME类型
default_type application/octet-stream; # 设置文件使用的默认的MIME-type
map_hash_max_size 10240;
map_hash_bucket_size 320;
########自定义start##########
#限流
#limit_req_zone $http_x_forwarded_for zone=api_limit:10m rate=25r/s; # 定义一个名为 api_limit" 的共享内存区域,大小为 10MB,限制速率为每秒 25 个请求,可以接收25个人的公司同时访问,因为一个公司用的是同一个ip , $remote_addr二进制方式:$binary_remote_addr
#解决502
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
proxy_connect_timeout 300; # 连接超时时间(秒)
proxy_send_timeout 300; # 发送请求超时时间
proxy_read_timeout 300; # 读取响应超时时间
proxy_buffer_size 256k; # 从原来的128k增加到256k
proxy_buffers 8 512k; # 从原来的4个256k缓冲区增加到8个512k缓冲区
reset_timedout_connection on; #告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间
send_timeout 1000; #指定客户端的响应超时时间。这个设置不会用于整个转发器,而是在两次客户端读取操作之间。如果在这段时间内,客户端没有读取任何数据,nginx就会关闭连接30
client_max_body_size 20m; #注意:要是以php运行的话,这个大小client_max_body_size要和php.ini中的 post_max_size = 2M upload_max_filesize = 2M 值差不多或者稍大,这样就不会因为提交数据大小不一致出现错误。
error_log /var/log/nginxerror.log;
access_log /var/log/nginx.log; #设置nginx是否将存储访问日志。关闭这个选项可以让读取磁盘IO操作更快(aka,YOLO)
#log_format main '$remote_addr - $http_x_forwarded_for'; #测试代理ip,会被server模块中覆盖,如果配置的话。#格式:X-Forwarded-For: 客户端IP, 代理1IP, 代理2IP ,通过观察,很奇怪: 《引擎服务器ip - 客户端IP, 代理1IP》,完全不兼容,没有不用了
#access_log /var/log/nginx.log main; #日记保存位置,会被server模块中覆盖,如果配置的话
real_ip_header X-Forwarded-For; #真正的X-Forwarded-For头指示Nginx将原始IP地址转发到后端(端口8888),否则所有流量似乎都来自127.0.0.1
########自定义end############
sendfile on; #sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效
#tcp_nopush on; #告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送
keepalive_timeout 30; #给客户端分配keep-alive链接超时时间。服务器将在这个超时时间过后关闭链接。我们将它设置低些可以让ngnix持续工作的时间更长
keepalive_requests 10000; # 新增:单连接最大请求数
gzip on; #是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 3;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/json;
gzip_vary on;
gzip_proxied any; # 代理请求也压缩
include /usr/local/servers/web/nginx/vhost/*.conf;
}
发表评论 取消回复