1、安装、启动nginx

    1. yum install nginx
    2. systemctl start nginx

    2、更改配置文件 /etc/nginx/nginx.conf

    1. user nginx nginx;
    2. worker_processes auto;
    3. error_log /var/log/nginx/error.log warn;
    4. pid /var/run/nginx.pid;
    5. events {
    6. worker_connections 65000;
    7. }
    8. http {
    9. include /etc/nginx/mime.types;
    10. default_type application/octet-stream;
    11. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    12. '$status $body_bytes_sent "$http_referer" '
    13. '"$http_user_agent" "$http_x_forwarded_for"';
    14. client_body_buffer_size 1024m;
    15. #access_log off;
    16. access_log /var/log/nginx/access.log main;
    17. server_tokens off;
    18. sendfile on;
    19. tcp_nopush on;
    20. tcp_nodelay on;
    21. keepalive_timeout 10;
    22. client_header_timeout 10;
    23. client_body_timeout 10;
    24. reset_timedout_connection on;
    25. send_timeout 10;
    26. limit_conn_zone $binary_remote_addr zone=addr:5000m;
    27. limit_conn addr 65535;
    28. #client_max_body_size 1000m;
    29. charset UTF-8;
    30. gzip on;
    31. gzip_disable "msie6";
    32. gzip_proxied any;
    33. gzip_min_length 1000;
    34. gzip_comp_level 9;
    35. gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    36. open_file_cache max=100000 inactive=20s;
    37. open_file_cache_valid 30s;
    38. open_file_cache_min_uses 2;
    39. open_file_cache_errors on;
    40. include /etc/nginx/conf.d/*.conf;
    41. }

    配置fastcgi参数 /etc/nginx/fastcgi_params

    1. fastcgi_param QUERY_STRING $query_string;
    2. fastcgi_param REQUEST_METHOD $request_method;
    3. fastcgi_param CONTENT_TYPE $content_type;
    4. fastcgi_param CONTENT_LENGTH $content_length;
    5. fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    6. fastcgi_param REQUEST_URI $request_uri;
    7. fastcgi_param DOCUMENT_URI $document_uri;
    8. fastcgi_param DOCUMENT_ROOT $document_root;
    9. fastcgi_param SERVER_PROTOCOL $server_protocol;
    10. fastcgi_param REQUEST_SCHEME $scheme;
    11. fastcgi_param HTTPS $https if_not_empty;
    12. fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    13. fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
    14. fastcgi_param REMOTE_ADDR $remote_addr;
    15. fastcgi_param REMOTE_PORT $remote_port;
    16. fastcgi_param SERVER_ADDR $server_addr;
    17. fastcgi_param SERVER_PORT $server_port;
    18. fastcgi_param SERVER_NAME $server_name;
    19. # PHP only, required if PHP was built with --enable-force-cgi-redirect
    20. fastcgi_param REDIRECT_STATUS 200;
    21. fastcgi_buffer_size 256M;
    22. fastcgi_buffers 4 256M;
    23. fastcgi_busy_buffers_size 256M;
    24. fastcgi_connect_timeout 300s;
    25. fastcgi_send_timeout 300s;
    26. fastcgi_read_timeout 300s;
    27. fastcgi_intercept_errors on;
    28. fastcgi_max_temp_file_size 0;
    29. fastcgi_pass unix:/dev/shm/php-fpm.sock;
    30. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    fastcgi_pass 表示使用哪个代理
    可以使用php-fpm的 127.0.0.1:9000

    配置网站 /etc/nginx/conf.d/test.conf

    1. server {
    2. listen 80 8080;
    3. server_name test.com xyz.com;
    4. #access_log off;
    5. index index.php;
    6. error_page 502 = /502.html;
    7. error_page 404 = /404.html;
    8. root /opt/app/public;
    9. if (!-e $request_filename) {
    10. rewrite ^(.*)$ /index.php?s=$1 last;
    11. break;
    12. }
    13. location ~ .*\.php?$
    14. {
    15. include fastcgi_params;
    16. fastcgi_param channel $http_channel;
    17. fastcgi_index index.php;
    18. }
    19. }

    启动报错 以及解决方法

    1. #报错 1 配置内存不足
    2. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    3. nginx: [alert] mmap(MAP_ANON|MAP_SHARED, 5242880000) failed (12: Cannot allocate memory)
    4. nginx: configuration file /etc/nginx/nginx.conf test failed.
    5. zone限制内存
    6. limit_conn_zone $binary_remote_addr zone=addr:500m;
    7. #配置内存不足 解决方法
    8. https://segmentfault.com/a/1190000004688125
    9. https://www.digitalocean.com/community/questions/nginx-alert-mmap-failed-22-invalid-argument
    10. https://serverfault.com/questions/496671/nginx-or-php-fpm-error/496855
    11. #报错 2 绑定端口拒绝
    12. bind() to 0.0.0.0:8880 failed (13: Permission denied)
    13. #权限拒绝,经检查发现是开启selinux 导致的。 直接关闭
    14. #getenforce 这个命令可以查看当前是否开启了selinux 如果输出 disabled 或 permissive 那就是关闭了
    15. #如果输出 enforcing 那就是开启了 selinux
    16. #1、临时关闭selinux
    17. #setenforce 0 ##设置SELinux 成为permissive模式
    18. #setenforce 1 ##设置SELinux 成为enforcing模式
    19. #2、永久关闭selinux,
    20. #修改/etc/selinux/config 文件
    21. #将SELINUX=enforcing改为SELINUX=disabled
    22. #重启机器即可