zoukankan      html  css  js  c++  java
  • nginx 各类网站设置 (laravel , thinkphp , nodejs , https)

    基础部分设置

    [root@centos ~]# vim /opt/nginx/conf/nginx.conf

    user www www;
    worker_processes auto;
    pid logs/nginx.pid;
    worker_rlimit_nofile 100000;

    events {
    use epoll;
    multi_accept on;
    worker_connections 65535 ;
    }

    http {

    include mime.types;
    default_type application/octet-stream;
    charset utf-8;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 64k;
    client_max_body_size 8m;

    server_tokens off;
    sendfile on;

    keepalive_timeout 10;
    client_header_timeout 10;
    client_body_timeout 10;
    reset_timedout_connection on;
    send_timeout 10;

    limit_conn_zone $binary_remote_addr zone=addr:5m;
    limit_conn addr 100;

    tcp_nopush on;
    tcp_nodelay on;

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;

    gzip on;
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    gzip_min_length 5k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_proxied any;
    gzip_comp_level 4;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;

    include /opt/nginx/conf/vhosts/*.conf;

    }

    1. 支持HTTPS,并且必须强制https方式打开(必须拥有域名)

    [root@centos ~]# vim /opt/nginx/conf/vhost/www.vicowong.com.conf

    server{
    listen 80;
    server_name ~^(?<subdomain>.+).vicowong.com$;
    rewrite ^/(.*) http://www.vicowong.com/$subdomain/$1 permanent;
    }

    server {
    set $domain www.vicowong.com;
    set $web_dir /data/website/$domain;
    set $log_dir /data/logs/;

    server_name www.vicowong.com m.vicowong.com api.vicowong.com admin.vicowong.com;
    listen 443 ssl http2;
    ssl_certificate /data/ssl/startssl.crt;
    ssl_certificate_key /data/ssl/startssl.key;
    ssl on;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    # ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_prefer_server_ciphers on;
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.4.4 8.8.8.8 valid=300s;
    resolver_timeout 10s;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    # add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;

    access_log off;
    # access_log $log_dir$domain.access.log;
    error_log $log_dir$domain.error.log;

    root $web_dir;
    location = / {
    if ($host = 'www.vicowong.com') {
    return 301 https://$host/blog/index.htm;
    }
    if ($host != 'www.vicowong.com') {
    return 301 https://$host/index.php;
    }
    }
    location / {
    index index.htm;
    if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php/$1 last;
    break;
    }
    }
    location ~ .php {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $web_dir/$fastcgi_script_name;
    include fastcgi_params;
    set $path_info "";
    set $real_script_name $fastcgi_script_name;
    if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
    set $real_script_name $1;
    set $path_info $2;
    }
    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info;

    }
    location ~ ^/(images|javascript|js|css|flash|media|static)/ {
    root $web_dir;
    expires 30d;
    }
    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
    {
    expires 30d;
    }
    }
    server {
    listen 80;
    server_name www.vicowong.com m.vicowong.com api.vicowong.com admin.vicowong.com;

    location = / {
    if ($host = 'www.vicowong.com') {
    return 301 https://$host/blog/index.htm;
    }
    if ($host != 'www.vicowong.com') {
    return 301 https://$host/index.php;
    }
    }
    location / {
    if (!-e $request_filename) {
    return 301 https://$host$request_uri;
    }
    }
    }

    1. 支持laravel

    server {
      listen 80;
      server_name 192.168.1.10;
      set $root_dir /data/www/blog/public/;

      root $root_dir;

      location / {
        index index.html index.php;
        try_files $uri $uri/ /index.php?$query_string;
      }

      location ~ .php {
        root $root_dir;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
      }
    }

    2. 支持thinkphp

    server {
    listen 80;
    server_name 192.168.1.10;

    root /data/www/web;

    location / {
    index index.html index.php;

    # for bowers thinkphp without /index.php path
    if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php/$1 last;
    break;
    }
    }
    location ~ .php {
    root /data/www/web;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;

    # for thinkphp pathinfo mode
    set $path_info "";
    set $real_script_name $fastcgi_script_name;
    if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
    set $real_script_name $1;
    set $path_info $2;
    }
    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info;
    }
    }

    3. 支持nodejs

    server {
    set $domain www.vicowong.com;
    set $web_dir /data/website/$domain;
    set $log_dir /data/logs/;

    listen 80;
    server_name nodejs.vicowong.com;

    access_log off;
    # access_log $log_dir$domain.access.log;
    error_log $log_dir$domain.error.log;

    root $web_dir;
    location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host:80;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }

  • 相关阅读:
    angularjs的$on、$emit、$broadcast
    angularjs中的路由介绍详解 ui-route(转)
    ionic入门教程-ionic路由详解(state、route、resolve)(转)
    Cocos Creator 加载使用protobuf第三方库,因为加载顺序报错
    Cocos Creator 计时器错误 cc.Scheduler: Illegal target which doesn't have uuid or instanceId.
    Cocos Creator 构造函数传参警告 Can not instantiate CCClass 'Test' with arguments.
    Cocos Creator 对象池NodePool
    Cocos Creator 坐标系 (convertToWorldSpaceAR、convertToNodeSpaceAR)
    Cocos Creator 常驻节点addPersistRootNode
    Cocos Creator 配合Tiled地图的使用
  • 原文地址:https://www.cnblogs.com/vicowong/p/6149588.html
Copyright © 2011-2022 走看看