标签:装包 最小 源码 crt reload 自己 fast pac remote
nginx 技术文档Nginx ("engine x") 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。
反向代理就是当请求访问你的代理服务器时,代理服务器会对你的请求进行转发,可以转发到静态的资源路径上去,也可以转发到动态的服务接口上去。
静态代理
静态代理就是将请求代理到不同的静态资源路径上去(前端的项目用 nginx 做静态代理)
动态代理
动态代理就是把代理服务器的请求转发到另一个服务上去(把请求转到后台)
图示
确认系统中安装了 gcc pcre-devel zlib-devel openssl openssl-devel
软件包
#安装命令
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
下载 nginx 安装包(nginx-1.9.0.tar.gz)
安装
# 将安装包移动到安装目录下
mv nginx-1.9.0.tar.gz /usr/local/nginx
# 解压
tar -zxvf nginx-1.9.0.tar.gz
# 配置
cd nginx-1.9.0
# Configure是一个可执行脚本有很多选项,在待安装的源码路径下使用命令
# ./configure–help输出详细的选项列表
./configure --prefix=/usr/local/nginx #--prefix选项是配置安装的路径
# 安装
make #编译
make install #安装
测试是否安装成功,配置开机自启
#测试是否安装成功
cd /usr/loca/nginx/
./sbin/nginx -t
#配置开机自启
vim /etc/rc.d/rc.local
#重启 nginx
/usr/local/nginx/sbin/nginx -s reload
下载 nginx 镜像
docker pull nginx:1.10
copy 容器中 nginx 配置
# 先运行一次容器(为了拷贝配置文件)
docker run -p 80:80 --name nginx -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/logs:/var/log/nginx -d nginx:1.10
# 将容器内的配置文件拷贝到指定目录
docker container cp nginx:/etc/nginx /mydata/nginx/
# 修改文件名称
mv nginx conf
# 终止并删除容器
docker stop nginx
docker rm nginx
使用 Docker命令启动 nginx 容器
docker run -p 80:80 --name nginx -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/logs:/var/log/nginx -v /mydata/nginx/conf:/etc/nginx -d nginx:1.10
目录结构(版本不同,目录结构不同)
配置文件
nginx 1.9.0
#主配置文件 nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#压缩配置
gzip on; #开启gzip
gzip_disable "msie6"; #IE6不使用gzip
gzip_vary on; #设置为on会在Header里增加 "Vary: Accept-Encoding"
gzip_proxied any; #代理结果数据的压缩
gzip_comp_level 6; #gzip压缩比(1~9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值
gzip_buffers 16 8k; #获取多少内存用于缓存压缩结果
gzip_http_version 1.1; #识别http协议的版本
gzip_min_length 1k; #设置允许压缩的页面最小字节数,超过1k的文件会被压缩
gzip_types application/javascript text/css; #对特定的MIME类型生效,js和css文件会被压缩
server {
#https(监听443 云服务器需要开启443安全组)
listen 443;
server_name xxx.xxx.com;
ssl on;
ssl_certificate /usr/local/_.topwellsoft.com_bundle.crt;
ssl_certificate_key /usr/local/topwellsoft.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:HIGH:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!SEED:!DSS:!CAMELLIA;
location / {
root html;
index index.html index.htm;
}
#旅游项目后台
location /tptrip/ {
proxy_pass http://localhost:8087/;
}
#旅游项目手机端
location /tptrip/mobile/ {
proxy_pass http://localhost:8088/tptrip/mobile/; #请求容器中的手机端项目
index index.html index.htm;
}
#旅游项目pc端
location /tptrip/trip/ {
#proxy_pass http://172.18.0.9:80/tptrip/trip/; #请求容器中的pc端项目
proxy_pass http://localhost:8086/tptrip/trip/;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
# nginx.conf.default
同上
nginx 1.16.1
#主配置文件 nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#加载 /etc/nginx/conf.d/ 目录下的所有*.conf 文件,作为子配置文件
include /etc/nginx/conf.d/*.conf;
}
#默认配置文件 default.conf
upstream gisserver{
server xxxx;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
listen 8080;
location /traffic {
root /root/tp_traffic_visualization/dist;
}
# location / {
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Host $http_host;
# proxy_pass http://gisserver;
# }
# location /iserver {
# client_body_buffer_size 10m;
# client_max_body_size 100m;
# proxy_pass http://gisserver;
# }
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache‘s document root
# concurs with nginx‘s one
#
#location ~ /\.ht {
# deny all;
#}
}
目录结构
配置
# 生成 docker 镜像
FROM nginx:stable-alpine
WORKDIR /data
# copy 容器外配置文件到 nginx 默认安装路径下(覆盖默认配置文件)
#注意,先把容器生成的默认配置文件 copy 到容器外,在此基础上修改生成我们自己的配置文件
COPY nginx/nginx.conf /etc/nginx/nginx.conf
#copy 编译后的前端项目到 /usr/share/nginx/html/tptrip/trip/
#访问地址:https://xxx:端口号/tptrip/trip/
COPY dist/ /usr/share/nginx/html/tptrip/trip/
#声明运行时容器提供服务端口,只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。写成 80不用更改
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
# nginx.conf 主配置文件
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
server {
#charset koi8-r;
#access_log logs/host.access.log main;
# location / {
# root html;
# index index.html index.htm;
# }
listen 80;
location /tptrip/trip/ {
root /usr/share/nginx/html/tptrip/trip/;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
keepalive_timeout 65;
#gzip on;
gzip on; #开启gzip
gzip_disable "msie6"; #IE6不使用gzip
gzip_vary on; #设置为on会在Header里增加 "Vary: Accept-Encoding"
gzip_proxied any; #代理结果数据的压缩
gzip_comp_level 6; #gzip压缩比(1~9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值
gzip_buffers 16 8k; #获取多少内存用于缓存压缩结果
gzip_http_version 1.1; #识别http协议的版本
gzip_min_length 1k; #设置允许压缩的页面最小字节数,超过1k的文件会被压缩
gzip_types application/javascript text/css; #对特定的MIME类型生效,js和css文件会被压缩
include /etc/nginx/conf.d/*.conf;
}
标签:装包 最小 源码 crt reload 自己 fast pac remote
原文地址:https://blog.51cto.com/13416247/2477431