您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

web开发、运维必备,nginx的安装知识

时间:2022-01-04 11:43:48  来源:  作者:程序员涛哥

一、背景介绍

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

二、安装

$ wget http://nginx.org/download/nginx-1.14.2.tar.gz

# 解压源码
$ tar -zxvf nginx-1.14.2.tar.gz

# 进入源码目录
$ cd nginx-1.14.2

$ ./configure
--prefix=/usr/local/nginx --with-http_ssl_module --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --add-module=/usr/local/src/ModSecurity-nginx

$ make

$ make install

 

四、配置

1)、创建目录

  • 日志目录 /www/logs/nginx/
  • 证书目录 /usr/local/nginx/ssl/

要把证书放入到上诉目录

2)、主配置文件

user  www www;
worker_processes  8;

pid        /var/run/nginx.pid;


worker_rlimit_nofile 65535;

events {
    worker_connections 65535;
}


http {

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

    log_format  main escape=json '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$request_body" "$host"';



    error_log  logs/nginx_error.log  error;

    #proxy_ignore_client_abort on;
    proxy_buffering off;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 128k;
    large_client_header_buffers 4 128k;
    client_max_body_size 100m;
    client_body_buffer_size 1024k;

    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  65;
    tcp_nodelay on;

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

    gzip  on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-JAVAscript text/css application/xml image/jpeg image/gif image/png;
    gzip_vary on;

    server_tokens off;
    proxy_hide_header X-Powered-By;
    proxy_hide_header Server;
    fastcgi_hide_header X-Powered-By;

   include conf.d/*.conf;
}

 

3)、报错设置

初期调试时,请不要调整到指定的5xx页面

 

   error_page   500 502 503 504  /50x.html;

 

4)、子域名

server {
    listen 80;
    listen 443 ssl;
    #域名配置
    server_name subdomain.domain.com;
    #根目录
    root /www/domain/public;
    index index.php index.html;
    # 没搞明白这里为啥是关闭

    ssl off;
    # 证书
    ssl_certificate /usr/local/nginx/ssl/domain.com.pem;
    ssl_certificate_key /usr/local/nginx/ssl/domain.com.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    if ($host !~* ^(.*).domain.com$) {
       return 403;
    }

    # enable HSTS
    #add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;

    #if ($scheme = http) {
    #     return 301 https://$host$request_uri;
    #}

    if ($time_iso8601 ~ "^(d{4}-d{2}-d{2})") {
        set $year $1;
        set $month $2;
        set $day $3;
    }

    access_log /www/logs/nginx/domain_access_$year-$month-$day.log main;
    error_log  /www/logs/nginx/domain_error.log error;
# 配置php部分
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

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

    }

五、启动-停止

 

#启动
$ /usr/local/nginx/sbin/nginx

#停止
$ /usr/local/nginx/sbin/nginx -s stop

#重启
$ /usr/local/nginx/sbin/nginx -s reload

 

六、服务管理

需要配置服务管理文件

1)、创建nginx.service

vim /usr/lib/systemd/system/nginx.service

 

2)、设置内容如下

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SElinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target

 

3)、使文件生效

systemctl daemon-reload

 

4)、常用命令

启动
systemctl start nginx

关闭nginx
systemctl stop nginx

重启nginx
systemctl restart nginx

5)、开机启动

systemctl enable nginx

 

7、排错

1)、端口被占用

[root@zjt-baidu nginx-1.14.2]# /usr/local/nginx/sbin/nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

使用ps axf 看看

[root@zjt-baidu ~]# ps axf | grep nginx
 2969 pts/2    S+     0:00          _ grep --color=auto nginx
 1295 ?        Ss     0:00 nginx: master process /usr/sbin/nginx
 1296 ?        S      0:00  _ nginx: worker process
 1297 ?        S      0:00  _ nginx: worker process

不过这个是不严谨的,因为有的时候,会是别的应用程序占用了80的服务端口

那查看端口占用情况

[root@zjt-baidu ~]# netstat -ntlup | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1295/nginx: master  
tcp6       0      0 :::80                   :::*                    LISTEN      1295/nginx: master  

结束掉相应的进程

2)、配置文件出错

[root@zjt-baidu ~]# /usr/local/nginx/sbin/nginx -s stop
nginx: [emerg] unexpected "}" in /usr/local/nginx/conf/nginx.conf:149

缺少分号

    #}
 include conf.d/*.conf

}

 

感谢 点赞,收藏,转发。关注我,了解更多软件资讯~!



Tags:nginx   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、背景介绍Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。二、安装$ wget http://nginx.org/download/nginx-1.14.2.tar.gz#...【详细内容】
2022-01-04  Tags: nginx  点击:(0)  评论:(0)  加入收藏
安装Nginx在Mac上有一个很好用的包管理插件,名为homebrew。 具体的安装可以自行去搜索下。下面就借助Homebrew来安装Nginx。首先是拉取Nginx$ brew tap home/nginx执行安装$...【详细内容】
2021-12-31  Tags: nginx  点击:(9)  评论:(0)  加入收藏
项目中,遇到了一个问题,就是PDF等文档不能够在线预览,预览时会报错。错误描述浏览器的console中,显示如下错误:nginx代理服务报Mixed Content: The page at ******** was loaded...【详细内容】
2021-12-17  Tags: nginx  点击:(12)  评论:(0)  加入收藏
前言Nginx是前后端开发工程师必须掌握的神器。该神器有很多使用场景,比如反向代理、负载均衡、动静分离、跨域等等。把 Nginx下载下来,打开conf文件夹的nginx.conf文件,Nginx服...【详细内容】
2021-12-08  Tags: nginx  点击:(18)  评论:(0)  加入收藏
最近客户有个新需求,就是想查看网站的访问情况,由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的页...【详细内容】
2021-10-09  Tags: nginx  点击:(49)  评论:(0)  加入收藏
安全服务器是只允许所需数量的服务器。理想情况下,我们将通过单独启用其他功能来基于最小系统构建服务器。进行最少的配置也有助于调试。如果该错误在最小系统中不可用,则分别...【详细内容】
2021-09-26  Tags: nginx  点击:(60)  评论:(0)  加入收藏
在今年的NGINX Sprint 2.0虚拟大会上,NGINX(来自流行的开源web服务器/负载均衡器和反向代理背后的公司F5),发布了NGINX现代应用参考架构(MARA)。该公司在一篇博客文章中说,这将帮...【详细内容】
2021-09-26  Tags: nginx  点击:(62)  评论:(0)  加入收藏
Ubuntu下安装Nginx一、系统基本信息查看1、查看Ubuntu版本信息:使用命令:cat /proc/version 查看~$ cat /proc/versionLinux version 4.15.0-106-generic (buildd@lcy01-amd6...【详细内容】
2021-09-16  Tags: nginx  点击:(62)  评论:(0)  加入收藏
出于安全审查或者对于系统安全性的要求,都要求我们生产环境部署的系统需要做一定的权限控制。那么如何简单快速地部署满足安全要求的权限系统呢?其实可以通过nginx的相关功能...【详细内容】
2021-09-07  Tags: nginx  点击:(69)  评论:(0)  加入收藏
什么是NginxNginx(engine x)是一个高性能的HTTP和反向代理服务器,具有内存少,高并发特点强。1、处理静态文件,索引文件以及自动检索打开文件描述符缓冲2、无缓冲的反向代理加速...【详细内容】
2021-09-02  Tags: nginx  点击:(71)  评论:(0)  加入收藏
▌简易百科推荐
一、背景介绍Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。二、安装$ wget http://nginx.org/download/nginx-1.14.2.tar.gz#...【详细内容】
2022-01-04  程序员涛哥    Tags:nginx   点击:(0)  评论:(0)  加入收藏
安装:yum install openldap openldap-servers openldap-clients拷贝数据库配置文件cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIGchown ldap:...【详细内容】
2021-12-31  ethnicity    Tags:CentOS7   点击:(4)  评论:(0)  加入收藏
安装Nginx在Mac上有一个很好用的包管理插件,名为homebrew。 具体的安装可以自行去搜索下。下面就借助Homebrew来安装Nginx。首先是拉取Nginx$ brew tap home/nginx执行安装$...【详细内容】
2021-12-31  lee哥的服务器开发    Tags:Nginx   点击:(9)  评论:(0)  加入收藏
在生产环境中为了保证网络的更高可用性,我们一般都会将网络做bond 。也称为双网卡绑定。先看看我们bond 的模式:  bond0: 平衡轮循环策略,有自动备援,不过需要交换机支持 。 ...【详细内容】
2021-12-29  忆梦如风    Tags:linux-centos   点击:(8)  评论:(0)  加入收藏
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  干程序那些事    Tags:CentOS7镜像   点击:(8)  评论:(0)  加入收藏
前言在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? 如何实现断线后重...【详细内容】
2021-12-24  程序猿阿嘴  CSDN  Tags:Netty   点击:(16)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  有云转晴    Tags:chrome   点击:(10)  评论:(0)  加入收藏
一. HTTP gzip压缩,概述 request header中声明Accept-Encoding : gzip,告知服务器客户端接受gzip的数据 response body,同时加入以下header:Content-Encoding: gzip:表明bo...【详细内容】
2021-12-22  java乐园    Tags:gzip压缩   点击:(14)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  SofM    Tags:Centos7   点击:(11)  评论:(0)  加入收藏
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  卷毛琴姨    Tags:云服务器   点击:(8)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条