资讯专栏INFORMATION COLUMN

nginx常用命令与配置

Profeel / 1520人阅读

摘要:一安装官网下载直接去上面的官网下载相应版本即可系统系统通过镜像源安装可通过下面两条命令轻松完成安装。

一、nginx安装
官网下载:https://nginx.org/en/download...
1、windows:
直接去上面的官网下载相应版本即可
2、mac系统:
$ brew install nginx
3、centOS系统:

1.) 通过rpm镜像源安装

centOS 7可通过下面两条命令轻松完成安装。
$ rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
$ yum install -y nginx

2.) 通过依赖包详细安装

安装nginx依赖库pcre、zlib
$  yum install pcre pcre-devel  
$  yum install zlib zlib-devel
如有必要,可以安装c++编译环境和openssl
$  yum install gcc-c++
$  yum install openssl openssl-devel
下载/编译nginx
$ wget -c https://nginx.org/download/nginx-1.14.2.tar.gz
$ tar -zxvf nginx-1.14.2.tar.gz

# 编译安装
$ cd nginx-1.14.2
$ ./configure  # 默认安装在/usr/local/nginx 
$ make && make install

# 创建软链
$ ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
$ nginx -v
二、nginx命令
# windows启动
> start nginx

# linux/mac启动
$ service nginx start
# 或手动指定配置
$ nginx -c /usr/local/nginx/conf/nginx.conf

# 重启
$ nginx -s reload

# 关闭
$ nginx -s stop

# 查看端口
$ netstat -an | grep 端口  # linux/mac系统
> netstat -an | findstr 端口  # windows系统

# 测试web服务
$ curl -i 主机:端口
# 或
$ telnet 主机 端口

# 查看进程
$ ps -ef | grep nginx

# 查看错误日志
$ tail -n30 /var/log/nginx/error.log
三、nginx配置
查看nginx.conf配置文件位置
$ nginx -t
1、创建一个标准的server
确保nginx.conf里的 include conf.d/*.conf 已启用,没有则添加一条  
在去conf.d目录下新建server.conf,配置如下:
server {
    listen       80;
    server_name  127.0.0.1;

    client_max_body_size    100m;
    
    location / {
        root   /app/xxx;  # 项目所在目录
        index  index.html index.htm;
        try_files  $uri $uri/ /index.html;  # vue单页应用需要路由始终指向index.html
    }
}
2、配置ssl证书实现https访问
复制.pem和.key两种证书到当前server配置同一个目录下
server {
    listen       443;
    server_name  127.0.0.1;
    ssl on;
    ssl_certificate             my.pem;    # 替换成自己的证书
    ssl_certificate_key         my.key;    # 替换成自己的证书
    ssl_session_timeout         5m;
    ssl_protocols SSLv3 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
    ssl_prefer_server_ciphers   on;

    location / {
        ...
    }
}
3、api接口反向代理
    location /api {
        proxy_pass   http://b.domain.com:9000;  # 最终地址会加上/api,变成 /api/xxx
        #proxy_cookie_domain   b.domain.com a.domain.com; # 需要修改接口返回的cookie域名时使用
    }
需要注意的是,proxy_pass路径有相对和绝对之分,如:proxy_pass   http://b.domain.com:9000/;  # 最终地址会替掉/api,变成 /xxx
4、upstream负载均衡
upstream apiServer { 
    server 10.0.0.80:5000;  # 如果需要权重加 weight=数字
    server 10.0.0.81:5000;
}
server {
    listen       80;
    server_name  127.0.0.1;

    location /api {
        proxy_pass   http://apiServer;
    }
}

需要注意的是:

upstream名称不应包含下划线,因为在某些条件下,当成主机名传给后端Java应用,会被当做域名来解析,结果返回Null,容易触发服务器内部错误。建议:使用驼峰命名规范
5、允许它站跨域访问

在location /api {}里添加以下项:

    add_header Access-Control-Allow-Origin *;  # *表示允许所有站跨域访问(不安全,建议指定具体允许的域名如:http://b.domain.com:9000(注意格式:http(s):// + domain + port,末尾也不能加/)
    add_header Access-Control-Allow-Credentials true;  #此项为允许带cookie跨域访问,若设置true,上面域名配置不能为*,必须指定具体域名
6、开启gzip压缩

gzip字段设置on,并设置哪些类型文件需要压缩:

http {
    include          mime.conf;
    default_type     application/octet-stream;
    ....

    gzip             on;
    gzip_min_length  10k;
    gzip_comp_level  5;
    gzip_types       text/plain text/css application/x-javascript application/javascript text/javascript;

    server {
        ....
    }
7、其它问题

1.) 访问服务报403权限

需要修改nginx.conf里的user,比如user root;

2.) nginx重启时报pid错:

nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

解决方案:使用nginx -c的参数指定nginx.conf文件的位置

$ mkdir -p /usr/local/nginx/logs
$ touch /usr/local/nginx/logs/nginx.pid
$ nginx -c /usr/local/nginx/conf/nginx.conf

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39784.html

相关文章

  • Centos7.x下Nginx安装及SSL配置常用命令

    摘要:一安装采用方式安装自动安装启动二及默认端口配置泛解析配置三常用命令重新加载配置停止服务 一、安装 采用yum方式安装 ##自动安装 yum nginx ##启动 nginx 二、SSL及默认端口配置 泛解析配置 server { listen 443; server_name *.banacoo.cn; ssl on; ssl_certifica...

    CrazyCodes 评论0 收藏0
  • 基于EC2,配置一个全栈服务实例(nginx + tomcat + mysql)

    摘要:领了一个服务器,开启了一个伪全栈的运维之路,各种服务线上部署。然后配置安全组,然后启动实例。安装与配置基础组件安装与配置登录进服务后,就可以开启一段服务器配置之旅了。 最近世道动荡,在前往高级的路上走出了车到山前必有路,睁眼一看是绝路的感觉。所以就索性瞎折腾一下。领了一个服务器,开启了一个伪全栈的运维之路,各种服务线上部署。 服务器申请与实例连接接 腾讯免费七天,阿里要钱,山里娃就在亚...

    dingda 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<