nginx优化和在windows 系统下添加服务
话不多说直接上配置文件
nginx优化
配置开启多少个工作进程 也就是cpu进程数,atuo是指跟随系统自动设置进程数,最好设置具体一下
worker_processes auto;
将进程绑定到特定的cpu上,避免进程在cpu间切换的开销
下面是4核开4线程的设置,如果是8核CPU开8个进程 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
如果是4核开8进程数worker_cpu_affinity 0001 0010 0100 1000 0001 0010 0100 1000;
多个核数就表示要有多少位,0001表示启用第一个CPU内核,0010表示启用第二个CPU内核,依此类推
但是在Windows上设置没有作用,
#worker_cpu_affinity 0001 0010 0100 1000;
设置每个进程最大可打开的文件描述数量
worker_rlimit_nofile 65535;
events {
设置最大并发量
worker_connections 102400;
当一个新连接到达时,如果激活了accept_mutex,那么多个Worker将以串行方式来处理,其中有一个Worker会被唤醒,其他的Worker继续保持休眠状态;如果没有激活accept_mutex,那么所有的Worker都会被唤醒,不过只有一个Worker能获取新连接,其它的Worker会重新进入休眠状态
accept_mutex on;
如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接。 如果nginx使用kqueue连接方法,那么这条指令会被忽略,因为这个方法会报告在等待被接受的新连接的数量。
multi_accept on;
}
server_tokens off;
sendfile on;
tcp_nopush on;
最大连接时间
keepalive_timeout 65;
***内容压缩 ***
gzip on;
gzip_disable “msie6”;
gzip_min_length 1024;
gzip_vary on;
gzip_comp_level 2;
gzip_buffers 4 32k;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
下面是我的配置文件:
#user nobody;
worker_processes auto;
#worker_cpu_affinity 0001 0010 0100 1000;
worker_rlimit_nofile 65535;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 102400;
accept_mutex on;
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
server_tokens off;
sendfile on;
tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_disable "msie6";
gzip_min_length 1024;
gzip_vary on;
gzip_comp_level 2;
gzip_buffers 4 32k;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
upstream nginx_test{
server 127.0.0.1:8891 weight=1 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8892 weight=1 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8893 weight=1 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name mpcollege.svsbic.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
server_name 域名;
ssl on;
root html;
index index.html index.htm;
ssl_certificate 路径 ;
ssl_certificate_key 路径 ;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 90;
client_max_body_size 10000m;
proxy_pass http://nginx_test;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
nginx在Windows系统下添加服务
大致的目录结构
创建配置文件service.exe.config内容如下
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
创建配置文件service.xml,内容如下
<service>
<id>nginx-service</id>
<name>NginxService</name>
<description>nginx</description>
<logpath>D:\nginx-1.14.2\logs</logpath>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
<executable>D:\nginx-1.14.2\nginx.exe</executable>
<startarguments>-p nginx-path</startarguments>
<stopexecutable>D:\nginx-1.14.2\nginx.exe</stopexecutable>
<stoparguments>-p D:\nginx-1.14.2 -s stop</stoparguments>
</service>
面的id为服务名称,用来删除服务,name为描述
将里面的路径修改成你自己的路径
下载一个安装工具winsw-1.18-bin.exe.下载连接
复制到nginx目录下修改名字为service.exe
nginx的根目录打开dos,输入命令:service.exe install。
查看windows服务列表,启动。
像nginx优化还可以对静态资源进行一些优化,设置缓存时间,这里就不解释了,在Windows下可能会出问题,有兴趣可以自己去查找