Nginx 학습 정리
10872 단어 nginx
설치
약, 홈 페이지 에서 다운로드 하면 됩 니 다.Nginx 는 C 언어 로 작 성 된 것 입 니 다. 플랫폼 을 뛰 어 넘 지 않 고 운영 체제 마다 다른 Nginx 를 다운로드 해 야 합 니 다.
1 윈도 우즈 의 Nginx 기본 명령
start nginx
./nginx -s quit
./nginx -s stop
./nginx -V
./nginx -s reload
2 Linxu 의 Nginx 기본 명령
./sbin/nginx
./sbin/nginx -s quit
./sbin/nginx -s stop
./sbin/nginx -V
./sbin/nginx -v
./sbin/nginx -s reload
3 Nginx 가 CentOS 7 에 설치 되 어 있 습 니 다.
Nginx Linux Windows , , 。
step 1 - CentOS yum
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
step 2 - Nginx , ./configure
No 1 - , bash ./configure
No 2 - , ./configure --prefix=[ ]
step 3 - make
step 4 - make install
step 5 - , /usr/local nginx ( configure )
step 6 - sbin , Nginx
step 7 - Nginx ,
No 1 - ,
No 2 - ,
[1] firewall-cmd --zone=public --add-port=80/tcp --permanent
[2] firewall-cmd --reload
크로스 필드 백 엔 드 부대 코드
Nginx 를 사용 하여 정적 자원 서버 를 사용 하여 전후 단 분 리 를 한다 면 전단 페이지 의 크로스 도 메 인 문제 와 관련 됩 니 다.자바 Spring 기반 크로스 도 메 인 허용 설정:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
*
* Spring
*/
@Configuration
public class CorsConfig{
// Http
static final String ORIGINS[] = new String[] { "GET", "POST", "PUT", "DELETE" };
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
//
registry.addMapping("/**").allowedOrigins("*").allowCredentials(true).allowedMethods(ORIGINS)
.maxAge(3600).allowCredentials(true);
}
};
}
}
Nginx 의 개념 적 사고
Nginx 가 뭐 예요?
Nginx Http、Https Web 。
Nginx —— 。
, 。
Apache , 。
Nginx 는 어떻게 고성능 을 실현 합 니까?
Nginx Worker ; , Worker Request。
Request , Worker , Request ,Worker Request。
, Nginx , Requst, Nginx io 。
Nginx 차단 요청
server {
listen 80;
server_name "";
return 444;
}
Nginx 놀 라 움 해결
, 。 Nginx 。
Nginx , Worker 。
Nginx 큰 파일 업로드
실제 사이트 개발 과정 에서 비교적 큰 파일 을 올 리 려 는 수요 에 부 딪 힐 수 있다.이러한 상황 에서 Nginx 를 정적 자원 서버 로 사용 하면 설정 을 조정 해 야 하 는 일련의 문제 가 발생 할 수 있 습 니 다.
Nginx 의 운영 절차:
( ) ( )
--> Nginx --> java project
Nginx 에 브 라 우 저가 접근 할 때 Nginx 는 서버 로 존재 합 니 다. 이 때 Nginx 설정 파일 에 서 는 이 단계 의 설정 에 대해 모두 client 를 사용 합 니 다.xxxx 설정.Nginx 가 백 엔 드 의 자바 프로젝트 에 접근 할 때 Nginx 는 클 라 이언 트 로 존재 합 니 다. 이 때 설정 파일 에 모두 proxy 입 니 다.xxxx 설정.
Nginx 에 대응 하 는 nginx. conf 파일 은 http 모듈 에서 관련 조절 을 합 니 다.
# ,
client_max_body_size 500m;
# body ,
client_body_buffer_size 100m;
# , ,
client_header_buffer_size 16k;
# client_header_buffer_size , large_client_header_buffers
large_client_header_buffers 4 32k;
# Nginx ,
proxy_connect_timeout 60s;
# Nginx upstream ,
proxy_send_timeout 60s;
# Http , Nginx ,
proxy_read_timeout 60s;
# proxy_buffering ,proxy_buffers proxy_busy_buffers_size
proxy_buffering on;
# Nginx Request
proxy_buffers 4 8k;
백 엔 드 에 SpringBoot 2.0 을 사용 하려 면 application. properties 에 다음 설정 을 추가 해 야 합 니 다.
spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=500MB
Nginx 프로필 통합
Nginx 디 렉 터 리 에 있 는 conf 폴 더 아래 nginx. conf 가 있 습 니 다.내용 은 다음 과 같다.
#
# Linux ,
# user root;
# Nginx , cpu
worker_processes 8;
#
# Linux
# Linux (ulimit -n)
worker_rlimit_nofile 65535;
#
error_log logs/error.log;
# pid
# /log
pid nginx.pid;
# Nginx
events {
# select、poll、epoll、kqueue , ,
# Linux , epoll
# Windows , poll
use epoll;
# , Linux
# ,Nginx
worker_connections 1024;
# ,
# on ,off , on
accept_mutex on;
#
# on ,off , off
multi_accept on;
}
#
http {
#
include mime.types;
# , text/plain
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;
#
charset utf-8;
# tcp_nopush HttpResponse Header ,
tcp_nopush on;
# tcp_nodelay, , IO
tcp_nodelay on;
# sendfile
# sendfile Linux 2.0 IO ( IO )
sendfile on;
# Nginx sendfile()
# 0 ( ), http/server/location
sendfile_max_chunk 1024k;
# ,
keepalive_timeout 65s;
# , 100
keepalive_requests 100;
# gzip
gzip on;
# ,
client_max_body_size 500m;
# body ,
client_body_buffer_size 100m;
# , ,
client_header_buffer_size 16k;
# client_header_buffer_size , large_client_header_buffers
large_client_header_buffers 4 32k;
# Nginx ,
proxy_connect_timeout 60s;
# Nginx upstream ,
proxy_send_timeout 60s;
# Http , Nginx ,
proxy_read_timeout 60s;
# proxy_buffering ,proxy_buffers proxy_busy_buffers_size
proxy_buffering on;
# Nginx Request
proxy_buffers 4 8k;
# Nginx ——
# server url
server {
#
listen 8090;
#
server_name hello_world;
#
#charset gkb;
charset utf-8;
# , :k - kb,m - mb
limit_rate 500k;
#
# error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
# http://ip:8090/, http://ip:8091/
location / {
proxy_pass http://localhost:8091/;
}
# http://ip:8090/api, http://ip:8092/
location /api {
proxy_pass http://localhost:8092/;
}
#
location /api2 {
# request header,Nginx HTTP 408(Request Timed Out)
client_header_timeout 60s;
# request body ,Nginx HTTP 408(Request Timed Out)
client_body_timeout 60s;
#
send_timeout 60s;
#
proxy_next_upstream_tries 3;
# Nginx
proxy_connect_timeout 60s;
# Nginx
proxy_read_timeout 60s;
# Nginx
proxy_send_timeout 60s;
# 502、504 ,
proxy_next_upstream http_500 http_501 http_502 http_503 http_504 error timeout invalid_header;
# aio,
aio on;
# http Header Host、X-Real-IP、X-Forwarded-For
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_pass http://hello_word_service/;
}
}
#
upstream hello_word_service {
#
server localhost:8091 weight=5;
server localhost:8092 weight=5;
#
# server localhost:8091;
# server localhost:8092;
# fair;
# ip hash
# , ip Hash ,
# server localhost:8091;
# server localhost:8092;
# ip_hash;
#
}
# Nginx ——
# server
server {
#
listen 8100;
#
server_name demo_web;
#
charset utf-8;
# , index.html index.htm
# ,
# http://ip:8100,
index index.html index.htm;
# ,
root D:\\demo_web;
# http://ip:8100/api, http://ip:8080/
location /api {
proxy_pass http://localhost:8080/;
}
#
location /api2 {
proxy_next_upstream http_500 http_501 http_502 http_503 http_504 error timeout invalid_header;
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_pass http://demo_web_service/;
}
}
#
upstream demo_web_service {
server localhost:8080;
}
# Nginx ——
# Nginx url
server {
#
listen 80;
#
server_name base_proxy;
#
charset utf-8;
location / {
proxy_pass http://baidu.com;
}
}
# , include
# include servers.conf;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.