• 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;
    }
    }

  • 相关阅读:
    redis应用场景
    java.lang.IllegalArgumentException: Result Maps collection already contains value for xxx
    Java问题解决:Java compiler level does not match the version of the installed Java project facet.
    win10 安装Oracle 11g release 2
    Oracle 11G Client客户端安装
    Oracle分页查询排序数据重复问题
    Mysql 函数使用记录(三)——UNIX_TIMESTAMP() 、UNIX_TIMESTAMP(date)
    PL/SQL Developer过期解决方法
    PL/SQL Developer登录出现——Using a filter for all users can lead to poor performance!
    Oracle Single-Row Functions(单行函数)——NULL-Related Functions
  • 原文地址:https://www.cnblogs.com/vicowong/p/6149588.html
Copyright © 2020-2023  润新知