NutzCN Logo
分享 本网站的nginx配置文件server片段
发布于 3078天前 作者 wendal 2364 次浏览 复制 上一个帖子 下一个帖子
标签: nginx

供部署nutz-book-project的童鞋参考, 部署的是https站点, http没给出,因为就是重定向到https之类的配置

        server {
                listen 443 ssl http2;
                listen 81 ssl;
                ssl_certificate /data/ssl_keys/getssl_server.crt;
                ssl_certificate_key /data/ssl_keys/getssl_server.key;
                server_name nutz.cn;
                ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_prefer_server_ciphers on;
                ssl_session_cache shared:SSL:10m;
                ssl_dhparam /data/ssl_keys/dhparam.pem;
                access_log /opt/nutzcn.log timed_combined;
                if ( $http_host !~ "^nutz.cn") {
                        rewrite (.+) https://nutz.cn$1 permanent;
                }
                location = /google77b7f1744e22d00f.html {
                        root html;
                }

                location = /test/check_proxy {
                        return 444;
                }

                location /nutzbook {
                        rewrite /nutzbook/(.+) /$1;
                }

                location ~ "^/cgi-bin" {
                        return 444;
                }

                location ~ "^/apidocs" {
                        root /dev/shm/nutz-book-project;
                }

                location /socket.io/ {
                        pagespeed off;
                        proxy_read_timeout 60m;

                        proxy_set_header Host $http_host;
                        proxy_http_version 1.1;
                        proxy_set_header X-forwarded-for $remote_addr;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
                        proxy_pass http://127.0.0.1:82;
                        access_log off;
                }

                location ~ "^/druid/" {
                        proxy_pass http://127.0.0.1:8080;
                        proxy_set_header Host $http_host;
                        proxy_set_header X-forwarded-for $remote_addr;
                        proxy_redirect http:// https://;

                }

                location /rs {
                        expires    8h;
                        root /opt/nutz-book-project/src/main/webapp;
                        #sendfile       on;
                        #tcp_nopush     on;
                        access_log off;
                }
                gzip_proxied no-cache no-store private expired auth;
                gzip_min_length 1000;
                gzip on;
                gzip_comp_level 9;
                gzip_vary on;
                gzip_disable "msie6";
                gzip_buffers 16 8k;
                gzip_http_version 1.1;
                gzip_types text/plain application/javascript image/png text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;


                location / {
                        proxy_http_version 1.1;
                        client_max_body_size 10m;
                        proxy_pass http://nutz;
                        proxy_set_header Host $http_host;
                        proxy_set_header X-forwarded-for $remote_addr;
                        proxy_redirect http:// https://;
                        #add_header Access-Control-Allow-Origin "*";
                }

        }

        upstream nutz {
                server 127.0.0.1:8080;
                keepalive 65;
        }

注意一下, 监听了81端口,转发到82端口了, 所以nutz-book-project里面配置需要把socketio的端口改成82

12 回复

这么多 location 有 location / , location /rs 这些 正则的 匹配顺序是怎么样 的呢? 最后一个不是都 匹配吗? 还有 我的 接口 比如 http://xxxxx.com/xxx?d=1 , http://xxxxx.com/xxx/ddd?c=1 , http://xxxxx.com/qqqq/ddd?c=1 , 是 返回json数据的! 而 tomcat 服务器的 img是 保存图片的地址 也就是 http://xxxxx.com/img/xxxx.jpg 时 访问图片的,,,那么怎么配置才能 动静太分离呢?听说Nginx对静态资源处理是 很羞羞的,,,, 正雪nginx中! @wendal

location /rs 就是静态文件路径了

测试了好多次 通过 tomcat直接获取的图片 总部 nginx的来的快!
配置
sendfile on;
#tcp_nopush on;

#keepalive_timeout  0;
keepalive_timeout  65;

gzip  on;

server {
    listen       80;

    server_name  localhost:8080;

    charset utf-8;

    #access_log  logs/host.access.log  main;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  
    {  
         expires    8h;
         root html;  
    }  
   location / {
          proxy_pass  http://localhost:8080;
   }

@wendal

100%是在windows下测试得出的结论.

恩,,是的! @wendal 为毛?

windows下的nginx就是垃圾

@wendal 原来是这样,,,那我公网的服务器还是 win的,,(此处是表情)...

@wendal 网站nutz.com 和 wzflow.nutz.cn 在一台服务器上,同时都是https

是不是在nginx.conf 中配置了两个server 片段
server {
listen 443 ssl http2;
server_name nutz.cn
}

server {
listen 443 ssl http2;
server_name wzflow.nutz.cn
}

@qq_16155404 是的

我配置成功了,一台服务器多域名多系统,反向代理,https 加密(startssl.com 免费一年,一年后再续),都有了。 这个问题一直想整,今天成功了。谢谢。

不过,还有点好问题,明天再弄了。

我想访问http://www.a.com 默认到- https://www.a.com 这个配置成功

http://www.b.comhttps://www.b.com 但是我的配置却到了 https://www.a.com

@qq_16155404 每个server都同时监听80和433

添加回复
请先登陆
回到顶部