nginx安装与运行

nginx安装与运行

安装

1.去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本
2.安装依赖环境(Centos)
 (1)安装gcc环境

yum install gcc-c++

 (2)安装PCRE库,用于解析正则表达式

yum install -y pcre pcre-devel

 (3)zlib压缩和解压缩依赖

yum install -y zlib zlib-devel

 (4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https

yum install -y openssl openssl-devel

3.安装依赖环境(ubuntu)
 (1)安装gcc环境

sudo apt update
sudo apt install build-essential
#查看版本
gcc --version  
g++ --version

 (2)安装PCRE库,用于解析正则表达式

sudo apt-get install libpcre3 libpcre3-dev

 (3)zlib压缩和解压缩依赖

sudo apt install zlib1g
sudo apt install zlib1g-dev

 (4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https

sudo apt-get install openssl
sudo apt-get install libssl-dev

4.解压,需要注意,解压后得到的是源码,源码需要编译后才能安装

tar -zxvf nginx-1.16.1.tar.gz

5.编译之前,先创建nginx临时目录,如果不创建,在启动nginx的过程中会报错

mkdir /var/temp/nginx -p

6.在nginx目录,输入如下命令进行配置,目的是为了创建makefile文件

./configure --prefix=/usr/local/nginx \
			--pid-path=/var/run/nginx/nginx.pid \
            --lock-path=/var/lock/nginx.lock \
            --error-log-path=/var/log/nginx/error.log \
            --http-log-path=/var/log/nginx/access.log \
            --with-http_gzip_static_module \
            --with-http_ssl_module \
            --http-client-body-temp-path=/var/temp/nginx/client \
            --http-proxy-temp-path=/var/temp/nginx/proxy \
            --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
            --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
            --http-scgi-temp-path=/var/temp/nginx/scgi \
            --add-module=/home/dev/fastdfs/fastdfs-nginx-module-1.22/src/

7.make编译

make

8.make编译

make install

9.配置

worker_processes  4;
#worker可以打开的句柄数
worker_rlimit_nofile 65535;

events {
    #每个worker可以达到的连接数
    worker_connections  16000;
}

#http模块下添加header中对下划线的支持
underscores_in_headers on;

#非配置的域名无法访问
server {
      listen 80 default;
      server_name  _;
      location / {
        #防止返回变成下载文件
        add_header Content-Type "text/plain";
        add_header Cache-Control "no-cache, no-store, must-revalidate";
        add_header Pragma "no-cache";
        add_header Expires "0";
        return 200 "";
      }
}

#静态页面
server {
        listen       80;
        server_name  www.baidu.com;
        client_max_body_size 100M;
        client_body_buffer_size 2M;
        location / {
            root   /home/xxx/xx/front-end;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
    }
#转发请求
server {
       server_name www.baidu.com
       listen 80;

        client_max_body_size 100M;
        client_body_buffer_size 2M;

       location / {
         proxy_pass http://127.0.0.1:8080;
         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;
         #启用支持websocket连接
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "upgrade";
       }
    }
#负载均衡
upstream backend {
  server localhost:7997;
  server localhost:7998;
  server localhost:7999;
}
#SSL
server {
        listen       443 ssl;
        server_name  www.baidu.com;

        client_max_body_size 100M;
        client_body_buffer_size 2M;

        #access_log  logs/host.access.log  main;

        # ssl证书地址
        ssl_certificate www.baidu.com.pem;  # pem文件的路径
        ssl_certificate_key www.baidu.com.key; # key文件的路径
        ssl_session_timeout  5m;    #缓存有效期
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    #加密算法
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    #安全链接可选的加密协议
        ssl_prefer_server_ciphers on;   #使用服务器端的首选算法

        location / {
            proxy_pass http://backend;
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Origin' $http_origin;
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

10.进入sbin目录启动nginx

./nginx  启动
./nginx -s stop  停止
./nginx -s reload  重新加载
./nginx -t 检查配置文件是否正确

11.打开浏览器,访问虚拟机所处内网ip即可打开nginx默认页面

注意事项

1.如果在云服务器安装,需要开启默认的nginx端口:80

2.如果在虚拟机安装,需要关闭防火墙

3.本地win或mac需要关闭防火墙

4.nginx请求转发头丢失问题

#下划线无法处理,在nginx的http部分添加如下信息
underscores_in_headers on; (默认 underscores_in_headers 为off)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值