安装部署
Windows下
下载完成后,解压缩,运行cmd,使用命令进行操作,不要直接双击nginx.exe,不要直接双击nginx.exe,不要直接双击nginx.exe
一定要在dos窗口启动,不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程,再启动才可以
2、使用命令到达nginx的加压缩后的目录 cd c:\nginx-1.15.2 (路径以nginx安装路径为准,或者先进入nginx目录中然后在文件资源管理器中输入cmd直接进入该路径下)
3、启动nginx服务,启动时会一闪而过是正常的. 启动命令 start nginx.exe
4、查看任务进程是否存在,dos或打开任务管理器都行
tasklist /fi "imagename eq nginx.exe"
默认为两个进程,其中一个为manager 另外一个是实例(服务器上最好配置为cpu核数/2/4这样的实例配置,比如你是16核的CPU 实例可配置为4或是8)
如果没有可能是启动报错了查看一下日志,在nginx目录中的logs文件夹下error.log是日志文件
常见的错误:
(1)端口号被占用
(2)nginx文件夹路径含中文
5、修改配置文件,进入解压缩目录,直接文件夹点击进去即可,不需要从dos操作
conf 配置文件目录
html 默认站点目录
logs日志目录
在conf目录下找到nginx.conf使用txt文本打开即可,找到server这个节点,修改端口号,如果有需求可以修改主页目录没有就不用修改
修改完成后保存,使用以下命令检查一下配置文件是否正确,后面是nginx.conf文件的路径,successful就说明正确了
nginx -t -c /nginx-1.15.2/conf/nginx.conf
如果程序没启动就直接start nginx启动,如果已经启动了就使用以下命令重新加载配置文件并重启
nginx -s reload
基础命令
关闭nginx服务
快速停止 nginx -s stop
完整有序的关闭 nginx -s quit
=================配置文件详解==================
#意为启动8个进程实例
worker_processes 8;
pid logs/nginx.pid;
#设置最大连接数,也就是nginx的最大并发数
events {
worker_connections 2048 ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#配置上传下载最大size,太小会导致大文件不能上传下载默认50,如果有批量下载需要的可以酌情调整
client_max_body_size 1024m;
#nginx缓冲区
proxy_buffer_size 16k;
proxy_buffers 4 16k;
proxy_busy_buffers_size 16k;
proxy_max_temp_file_size 1024m;
# keepalive_timeout 1800;
#重点来了 upstream组是配置集群的请求方式 默认是以轮询方式,轮询即每请求A一次下次一定请求B 这样做可以让流量平均分配到每台负载机上
#还有一种为ip_hash模式,此模式为hash客户端的ip将它指向一台负载机,例如192.168.0.1指向A 那么不管请求多少次 只要是这个IP就会被分配给A机去响应
#不过这种模式下客户机的IP做了路由转发的慎用 否则可能会将请求都集中到一台负载机上
upstream dzda-Lams {
#ip_hash
##我这里啥都不写 就是轮询,有几台负载机就写几个IP,需要使用iphash的就将上一句注释去掉;
server 10.185.62.96:9990;
server 10.185.62.96:9991;
keepalive 50;
}
#同时我的nginx还代理了门户网站、爬虫、接口等服务 如果没有的可以忽略,想要在加一个代理的可参照写法,同样在upstream 组中增加你的server
#门户网站
upstream dzda-cms {
server 10.185.62.96:9998;
}
#爬虫网站
upstream dzda-crawler {
server 10.185.11.126:9990;
}
#功能性接口服务
upstream dzda-HamsFunctionInterface {
server 10.185.62.96:9998;
}
#数据接口HamsPort
upstream dzda-HamsPort{
server 10.185.62.96:9998;
}
#同时使用http协议和https协议
#这里划重点,如果有要做https协议的在Linux下需要openssl作为依赖,下期出Linux下安装和配置使用nginx
# HTTPS server
server {
#默认监听80端口
listen 80;
listen 443 ssl;
#这里的servername我写的就是nginx机器的IP 名字随意起 也可写域名
server_name 10.185.62.98;
#这是https使用到的证书 不做ssl的忽略
ssl_certificate 6177061__ylhdc.com.cn.pem;
ssl_certificate_key 6177061__ylhdc.com.cn.key;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 20m;
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#开启gzip压缩,减少响应时间
gzip on;
gzip_comp_level 6;
gzip_min_length 1k;
gzip_types text/plain text/css text/xml image/png text/javascript application/json application/javascript application/x-javascript application/xml;
charset utf-8;
#配置nginx的日志文件位置。error日志配置只有warn级别以上的才记录
access_log logs/host.access.log;
error_log logs/host.error.log warn;
#划重点 这里配置IP后面路径的请求位置。 /路径我将其转发到我上面配置的档案系统的upstream组中去
# 访问时直接输入ip不需要写端口 因为80就是默认监听端口
location / {
proxy_pass
http://dzda-Lams/Lams/; }
#/Lams路径我同样将其转发到我上面配置的档案系统的upstream组中去,并配置使用http_1.1的方式支持长连接
location /Lams/ {
proxy_pass
http://dzda-Lams/Lams/; proxy_connect_timeout 100;
proxy_send_timeout 100;
proxy_read_timeout 600;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
#以此类推
location /cms {
proxy_pass
http://dzda-cms/cms/; }
location /HamsFunctionInterface {
proxy_pass
http://dzda-HamsFunctionInterface/HamsFunctionInterface/; }
location /HamsPort {
proxy_pass
http://dzda-HamsPort/HamsPort/; }
location /crawler {
proxy_pass
http://dzda-crawler/crawler/static/index.html#/login; }
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}