nginx 常用配置详解

1.nginx常用命令

启动nginx:start nginx

查看nginx的进程(用此命令判断nginx启动是否正常):tasklist /fi "imagename eq nginx.exe"

启动报错看:logs\error.log文件 

快速停止应用:nginx -s stop

优雅的停止应用:nginx -s quit

更改配置,使用新配置启动新工作进程,正常关闭旧工作进程:nginx -s reload(必须nginx进程起了才能重新加载) ;
测试配置是否有误:nginx -t
重新打开日志文件:nginx -s reopen
2.nginx配置

worker_processes  1;
events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #配置负载均衡:负载流 portal为此流的名称与proxy_pass:中配置的名称一致
    upstream portal{
       #ip_hash保证session同步,第一次请求分配给那个tomcat后,该用户的ip就与该tomcat绑定起来了.
       #ip_hash;
       server 10.50.100.34:80 weight=1 fail_timeout=5s;
       server 10.50.100.34:8080 weight=1 fail_timeout=5s;
    }
    #虚拟主机
    server {
        listen       8080;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }
    #虚拟主机,当访问nginx服务器80端口时,会将请求转发给proxy_pass中指定的地址或者负载流
    server {
    listen      80;
    server_name www.xiaozhou.com;
    location /{
                index  index.html index.htm index.php;
                index  proxy_set_header Host $host;
                index  proxy_set_header X-Real-IP $remote_addr;
                index  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		            #proxy_redirect off;
				        proxy_connect_timeout 90;    #nginx跟后端服务器连接超时时间(代理连接超时)
		            proxy_send_timeout 90;       #后端服务器数据回传时间(代理发送超时)
		            proxy_read_timeout 90;       #连接成功后,后端服务器响应时间(代理接收超时)
                proxy_pass http://fportal;
        }
    
    }
    #虚拟主机,配置https
    server {
    listen       443 ssl;
    server_name  www.test.com;
    ssl_certificate      ../server.crt;
    ssl_certificate_key  ../server.key;
    ssl_session_timeout  5m;
#    ssl_protocols  SSLv2 SSLv3 TLSv1;
#    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
#    ssl_prefer_server_ciphers   on;
    location / {
	       #root   html;
	       #index  testssl.html index.html index.htm;
		     proxy_redirect off;
		     proxy_set_header Host $host;
		     proxy_set_header X-Real-IP $remote_addr;
		     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		     proxy_pass http://portal;
    }
}
}

说明:https证书的,可以到阿里云下载,笔者当时下载的时候需要收费,所以选择openssl生成证书。

由于Ip_hash这种集群的方式存在,当第一次访问分配的tomcat节点挂了,用户的session就会失效,这种方式不是根本上解决session同步的问题,建议使用Spring-Hession+redis的方式实现session同步,详情请参看笔者的tomcat实现session同步。

猜你喜欢

转载自blog.csdn.net/zh127368zh/article/details/81837195