安装Nginx所需的pcre库 中文perl兼容真则表达式,官方站为http://www.pcre.org/,安装pcre库是为了使Nginx支持HTTP Rewrite 模式。 安装过程如下:
wget https://ftp.pcre.org/pub/pcre/pcre-8.31.tar.gz tar -zxf pcre-8.31.tar.gz cd pcre-8.31 ./configure make && make install
安装openssl http://www.openssl.org/source/openssl-1.1.0e.tar.gz
tar -zxf openssl-1.1.0e.tar.gz cd openssl-1.1.0e ./config --prefix=/usr/local/openssl --openssldir=/app/nginx/openssl/openssl-1.1.0e 注:prefix:安装目录;openssldir:源码目录 make && make install
yum install -y zlib-devel 注:依赖
yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel
安装nginx:
官网:http://nginx.org download
wget http://nginx.org/download/nginx-1.17.3.tar.gz
groupadd nginx useradd -s /sbin/nologin -g nginx -M nginx tar -zxf nginx-1.10.3.tar.gz cd nginx-1.10.3
./configure\ --user=nginx\ --group=nginx\ --prefix=/application/nginx-1.10.3\ 注:指定编译的路径 --with-http_stub_status_module\ 注:加载模块 --with-http_ssl_module\ 注:加载模 --with-openssl=/usr/local/openssl 注:指定openssl位置
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.10.3 --with-http_stub_status_module --with-http_ssl_module --with-openssl=/usr/local/openssl
make make install
如果报错: nginx 安装 make[1]: *** [/usr/local/openssl/.openssl/include/openssl/ssl.h] Error 127 解决: 打开nginx源文件下的/usr/local/src/nginx-1.9.9/auto/lib/openssl/conf文件: 找到: CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include" CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a" CORE_LIBS="$CORE_LIBS $NGX_LIBDL" 替换: CORE_INCS="$CORE_INCS $OPENSSL/include" CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a" CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
启动nginx 检查语法: /usr/local/nginx/sbin/nginx -t 启动: /usr/local/nginx/sbin/nginx
ps -ef|grep nginx
查看端口: lsof -i :80 如果没有安装lsof 可安装:yum install lsof -y
查看端口: netstat -lnt
进程: ps -ef|grep nginx
关闭防火墙:/etc/init.d/iptables stop 生产环境不能关闭防火墙
生产环境允许外网IP访问80端口: iptables -I INPUT -p tcp --dport 80 -j ACCEPT
https:
server { listen 443 ssl; server_name localhost; //绑定的域名
ssl_certificate cert.pem; ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
location / { root html; index index.html index.htm; } }
windows: 下载: http://nginx.org 解压
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx start nginx : 启动nginx nginx -s reload :修改配置后重新加载生效 nginx -s reopen :重新打开日志文件 nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
关闭nginx: nginx -s stop :快速停止nginx nginx -s quit :完整有序的停止nginx
如果遇到报错: bash: nginx: command not found
有可能是你再linux命令行环境下运行了windows命令,
如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
或者 用windows系统自带命令行工具运行
nginx -s reload 报错:nginx.pid 文件没找到
nginx -c C:\nginx-1.15.1\nginx-1.15.1\conf\nginx.conf
nginx -s reload从新指定配置文件
#user nobody; worker_processes 1;
#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;
pid logs/nginx.pid;
events { worker_connections 1024; }
http { include 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 logs/access.log main;
sendfile on; #tcp_nopush on;
#keepalive_timeout 0; keepalive_timeout 65;
#gzip on;
## Basic reverse proxy server ## ## myDomain## upstream myDomain { server ip:port; } ## Start test.myDomain.com ## server { listen 80; server_name test.myDomain.com; #access_log logs/quancha.access.log main; #error_log logs/quancha.error.log; root html; index index.html index.htm index.php; ## send request back to apache ## location / { proxy_pass http://myDomain; #Proxy Settings proxy_redirect off; 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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } ## End test.myDomain.com ##
## Basic reverse proxy server ## ## myDomain ## upstream task { server ip:port; } ## Start test.myDomain.com ## server { listen 80; server_name task.myDomain.com; # access_log logs/quancha.access.log main; error_log logs/quancha.error.log; root html; index index.html index.htm index.php; ## send request back to apache ## location / { proxy_pass http://task; #Proxy Settings proxy_redirect off; 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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } ## End task.myDomain.com ##
server { listen 80; server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / { root html; index index.html index.htm; }
#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 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; #} }
# another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias;
# location / { # root html; # index index.html index.htm; # } #}
# HTTPS server # #server { # listen 443 ssl; # server_name localhost;
# ssl_certificate cert.pem; # ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on;
# location / { # root html; # index index.html index.htm; # } #}
}